alyamus yazdı:
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
....
var
StreamData :TMemoryStream;
Url,html : string;
begin
.....
Url :=edit1.text;
StreamData := TMemoryStream.Create;
try
try
html:= idhttp1.Get(edit1.text);
idhttp1.Get(edit1.text, StreamData);
StreamData.Seek(0,soFromBeginning);
memo1.Lines.Text:=html;
button2.Click;
Except On E : Exception Do
MessageDlg('Exception: '+E.Message,mtError, [mbOK], 0);
End;
finally
StreamData.free;
end;
end;
Bu kodu sanıyorum direk programınızda kullandığınız yerden kopyalayıp yapıştırdınız.
button2.Click; öyle düşündürüyor.
Yanlış da anlamayınız lütfen. Ben delphi programıcısı değilim. Delphi kurulu bile değil.
Kodu inceleyince bazı soru işaretleri belirdi. Sormazsam kendimle çelişirim.
Uzatmadan..
Kodunuzdaki Url değişkeni neden tanımlandı, değer verildi ve hiç kullanılmadı?
StreamData değişkeni tanımlandı, içeriğini doldurmak için ikinci bir idHttp talebi ile programa zaman kaybettirildi, Seek ile kursör başa çekildi, sonra free edildi..
Neden?.. ne işe yaradı?
Lord_Ares yazdı:Burada dikkat etmen gereken string tipteki bir değişkenin karakter sınırlaması vardır. Dolayısı ile Sayfadan çektiğin satır sayısı stringin alabileceğinden fazla olursa kodu eksik çekmiş olursun tavsiyem stringlist türlerinden birini kullanman. ( not bu son söylediğim html değişkeni içinde geçerli oda string tanımlanmış )
String tip 2GB a kadar veri taşıyabilir.
Sanıyorum onu aşan web sayfası değildir.
Bir konu da AradanSec fonksiyonuna String gönderip, işleyip, String dönüyor. Dolayısı ile Stringi aşan bir durumda fonksiyon da çökecektir.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...