Delphi Html'yi kayıt ederken değiştirip kaydetmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
doktoraltun
Üye
Mesajlar: 73
Kayıt: 06 Oca 2012 06:56

Delphi Html'yi kayıt ederken değiştirip kaydetmek

Mesaj gönderen doktoraltun »

Selamün Aleyküm

Arkadaşlar gecenin bu vaktinde ilginç bir soru olacak ama ufak bir bilgiye ihtiyacım var yardımcı olacak veya olmayacak tüm arkadaşlara şimdiden teşekkür ediyorum.
Delphi dilini yeni yeni öğreniyorum.
Sorum şu. Şöyle bir webbrowser yaptım:
Resim
2. Resimdeki filelistbox taki iteme tıkladığımda görüntüsü şu şekilde oluyor:
Resim

Benim amacım ise bu html dosyalarını direk siteyi kaydet değilde, sayfadaki başlıkları ve içeriği bir html şablonuna çekmek ve kaydet dediğimde aynı filelistboxa itemi atması.

html parse ile yapılır diye biliyorum , daha pratik ve zekice başka bir yolu var mı diye düşünüyorum .

Saygılar.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Delphi Html'yi kayıt ederken değiştirip kaydetmek

Mesaj gönderen greenegitim »

html kodlarını ben şu şekilde alıyorum.

Kod: Tümünü seç

function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end;

function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := '';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end; 
procedure TForm1.BitBtn1Click(Sender: TObject);

begin
  
WebBrowser1.Navigate('http://www.yazilimuzmanlari.com/Makaleler/4/DELPHI.html');

end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if (SaveDialog1.FileName <> '') or SaveDialog1.Execute then
  Memo1.Lines.SaveToFile(SaveDialog1.FileName)
end;

end.
Mücadele güzelleştirir!
Cevapla