TStringList sonundaki boş satır

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

TStringList sonundaki boş satır

Mesaj gönderen TRSoft »

S.A.

Arkadaşlar biraz anlatma özürlüyümdür ama inşallah sorunumu anlatabilirim..

Öncelikle yapmak istediğim TIdHttp bileşeni ile post olayı örneğin

Kod: Tümünü seç

IdHttp.Post('http://xxx/xxx/xxx',Parametre,donüs)
gibi burada ben parametreyi TStrings tipinde tanımlıyorum.. yada kodu yazayım

Kod: Tümünü seç

Var
    Parametre : TStrings;
    donus : TStringStream;
Begin
       Parametre:=TStringList.Create;
       Parametre.Add('xxx');
       Parametre.Add('xxx');
       Parametre.Add('xxx');
       donus:=TStringStream.Create('');
       Try
            IdHttp.Post('http://xxx/xxx/xxx',Parametre,donus);
.............
benim buradaki sorunum parametrenin sonunda bir boş satır olması nasıl anlatsam mesela ben parametreyi bir memoya yazdırdığımda en sonunda bir satır daha oluyor.. Yani son değer olan satırdan sonra entere basılmış gibi düşünün. bu yüzden post olayında hata veriyor.. Ben bunu memoya atayıp memodan son satırı sildiğimde işlem tamam ancak normalde memoda böyle bir satır olmadığı için kodla silemiyorum...

ben bu post olayı için başka nasıl çözüme ulaşabilirim.

Valla şimdi diyeceksinizki birşey anlamadım biraz daha aç ancak dedimya bu konuda biraz özürlüyümde inşallah anlatabilmişimdir..
saygılarımla..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

post olayını idhttp ile bende bir türlü gerçekleştiremedim daha sonra twebbrobser kullanmaya başladım

eğer işinize yararsa benm kullandığım örnek:

Kod: Tümünü seç


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; 


function TForm1.GetTCKimlikNo(Ilce,Ad, Soyad, CiltNo, AileSiraNo,
  SiraNo: String): String;
var
  i: Integer;
  EncodedStr: string;
  Header,abc: OleVariant;
  Post: OleVariant;
  tmp:string;
begin
Result := '';
EncodedStr := 'ilce='+Ilce+
              '&ad='+Ad+
              '&soyad='+Soyad+
              '&cilt='+CiltNo+
              '&hane='+AileSiraNo+
              '&sira='+SiraNo+
              '&go=Kimlik Numaramı Bul';
Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte);

for I := 1 to Length(EncodedStr) do
  Post[I - 1] := Ord(EncodedStr[I]);

Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
abc := navNoHistory or navNoReadFromCache or navNoWriteToCache;
WebBrowser1.Navigate('http://tckimlik.nvi.gov.tr/pls/kimlik/kimlik', abc,
                                   EmptyParam, Post, Header);

while WebBrowser1.Busy do
  Application.ProcessMessages;

while not SayfaYuklendiMi do
  Application.ProcessMessages;


memo1.Lines.Clear;
WB_GetHTMLCode(WebBrowser1,memo1.Lines); //kaynak kodu memoya kopyala


......
......
......


end;


idhttp ile post olayını çözerseniz bize de bildirirseniz sevinirz.
iyi çalışmalar
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

gönderdiğiniz kod için teşekkür ederim. mutlaka deneyeceğim...

Aslında sorun post olayından ziyade stringlist'de gibi bunu başka şekillerde deneyeceğim. Bunu post ile yapmam gerekiyor...
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Problemi aşağıdaki şekilde çözdüm..
Forma bir tane memo koyup visible false yaptım..

Kod: Tümünü seç

Var 
    donus : TStringStream; 
Begin 
        Memo1.Clear;
        memo1.Lines.SetText(PChar('xxxx'+#13#10+'xxxxx'+#13#10+'xxxxx'));
       donus:=TStringStream.Create(''); 
       Try 
            IdHttp.Post('http://xxx/xxx/xxx',Memo1.Lines,donus); 
............
şimdilik işimi görüyor.. :lol:
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Cevapla