Html Kod Temizleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
bkantur
Üye
Mesajlar: 47
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Html Kod Temizleme

Mesaj gönderen bkantur »

Kod: Tümünü seç

var
TagBegin, TagEnd, TagLength: integer;
begin
TagBegin := Pos( '<', S);

while (TagBegin > 0) do begin
TagEnd := Pos('>', S);
TagLength := TagEnd - TagBegin + 1;
Delete(S, TagBegin, TagLength);
TagBegin:= Pos( '<', S);
end;
Result := S;
end;
Bu kodlar ile html tagları çok güzel bir şekilde temizleniyor benim sıkıntım temizlendikten sonra resimdeki gibi gelmesi.
Bunu nasıl düzeltebilirim acaba ?
Bu kodları nasıl düzenlersem her temizlediği koddan sonra bir alt satıra geçsin?
Dosya ekleri
Adsız.jpg
Adsız.jpg (4.67 KiB) 1180 kere görüntülendi
bkantur
Üye
Mesajlar: 47
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Re: Html Kod Temizleme

Mesaj gönderen bkantur »

Ben bu kodlar ile yapmayı başardım ama aradaki boşluk sayısı değişirse çalışmayacak. Daha kolay ve garanti bir yolu varmı acaba ?

Kod: Tümünü seç

var
  sorgusonucu : string;
begin
  sorgusonucu :=  aradansec(EmbeddedWB1.OleObject.document.body.innerHTML, 'Tarihi</th>' , '</table>');
  memo2.Text:= html_temizle(sorgusonucu);
  memo2.Text := StringReplace(memo2.Text, '        ', '', [rfReplaceAll]);
  memo2.Text := StringReplace(memo2.Text, '    ', '', [rfReplaceAll]);
  memo2.Text := StringReplace(memo2.Text, '    ', #13#10, [rfReplaceAll]);
  abonebosluk;
end;

procedure TForm1.abonebosluk;
var
  i: word;
begin
  i:=0;
  while true do
  begin
    if i=memo2.Lines.Count then break;
    if trim(memo2.Lines[i])='' then
    memo2.Lines.Delete(i)
  else
    inc(i);
  end;
end;
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Html Kod Temizleme

Mesaj gönderen Lord_Ares »

Tüm html kodu bir değişkene al ve bu değişkenden başka bir değişkene blok blok alarak tag temizle. Her kelime arasında boşluk olduğuna göre boşluğa denk geldiğinde bunu al bir satıra yapıştır. Ne kullandığını bilmiyorum ama dilersen embedded webbrowser bileşeninde hiç uğraşmadan direk yazıyı tek kodla alabiliyorsun.
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Html Kod Temizleme

Mesaj gönderen ertank »

Merhaba

İlk gönderilen mesajdaki resimi görüntüleyemedim. sürekli okunamayacak kadar ufak kalıyor ekranda.

Bunun dışında ayıklamak istediğin html dosyayı paylaşabilir misin?
bkantur
Üye
Mesajlar: 47
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Re: Html Kod Temizleme

Mesaj gönderen bkantur »

Cevaplar için teşekkür ederim
Lord_Ares yazdı:Tüm html kodu bir değişkene al ve bu değişkenden başka bir değişkene blok blok alarak tag temizle. Her kelime arasında boşluk olduğuna göre boşluğa denk geldiğinde bunu al bir satıra yapıştır. Ne kullandığını bilmiyorum ama dilersen embedded webbrowser bileşeninde hiç uğraşmadan direk yazıyı tek kodla alabiliyorsun.

Kod: Tümünü seç

Var
  strGecici,
  strAra,
  strBlok,
  Result: String;
begin
  strBlok := aradansec(EmbeddedWB1.OleObject.document.body.innerHTML, 'Tarihi</th>' , '</table>');
  strAra := 'sizeable">';
  while Pos(strAra,strBlok) > 0 do
  begin
    System.Delete(strBlok,1,Pos(strAra,strBlok) + length(strAra) - 1);
    strGecici := strBlok;
    Result := Trim( Copy(strGecici, 1, Pos('<',strGecici) -1 ));
    sorgusonucED.Lines.Add(Result);
  end;
end;
Bu kodu dün kaç sefer denemiştim ama hep boş dönmüştü şimdiki denememde ise çalıştı bir yerde gözden kaçırdığım bir hata vardı demek.
Cevapla