"String" in Listbox

Zerolith

Mitglied
wie kann ich einen String (ClientSocketRead!) dieser Form

sBuf := 'Eintrag1#13#10Eintrag2#13#10Eintrag3#13#10';

in ne listbox bringen?

also jeden "eintrag" (Eintrag1 usw) als extra Item

ich hab schon probiert... aber irgendwie haut meine logik net ganz hin

thx schon im vorraus
 

Dario Linsky

Erfahrenes Mitglied
Als erstes würde ich den String in mehrere Teile aufsplitten, wie es hier beschrieben wird. Danach kannst Du mit einer Schleife jedes einzelne Element des Arrays in die ListBox schreiben.

Wahrscheinlich gibt es aber auch noch eine viel einfachere Möglichkeit, aber so spontan fällt mir nur das ein. Liegt vermutlich an der Uhrzeit... :rolleyes:

Nachtrag: Hier steht auch noch was.
 

Zerolith

Mitglied
so schauts im moment aus

allerdings packt der wirklich den ganzen string wieder in ein ITEM
mist!

Code:
procedure TClient.ClSockRead(Sender: TObject; Socket: TCustomWinSocket);
var
s: String;
sl: TStringList; 
sBuf      : string;
sBuf2     : string;
pData     : pointer;
i,Size      : integer;
wort : string;
begin
  SockRead( Socket, pData, Size );
  if Size > 0 then
  begin
   SetLength( sBuf, Size );
   Move( pData^, sBuf[1], Size);

   sbuf2 := sbuf;
   delete(sbuf2,9,length(sbuf2));
   delete(sbuf,1,9);
   if sbuf2 = 'filelist' then
    begin
        s := sbuf;
        sl := TStringList.Create;
        sl.Delimiter := ';';

        sl.Add(s);
        for i := 0 to sl.Count-1 do
         begin
         wort := sl.strings[i];
         listbox1.Items.Add(wort);
         showmessage(wort);
         end;

        sl.Free;
    end

   else
   memo1.lines.add(sBuf);
   FreeMem(pData); //NEVER FORGET THIS, or you cause a memory leak!
  end;
end;

cya...
 

Dario Linsky

Erfahrenes Mitglied
Hast Du den Code mal durch den Debugger laufen lassen oder zumindest Deinen Anforderungen entsprechend angepasst? Irgendwie sieht das nämlich so aus, als hättest Du den Code einfach nur kopiert.
Code:
sl.Delimiter := ';';
Wolltest Du nicht eigentlich einen Zeilenumbruch (#13#10) als Trennzeichen? ;)
Ich hab allerdings gerade kein Delphi hier, also ist diese Antwort ohne Gewähr. :rolleyes:
 

Zerolith

Mitglied
den socket code hab i als kleines grundgerüst gefunden in irgendeinem Forum.... is alle schon angepasst wie ichs braucht

ja ich wollt #13#10 als Delimiter - allerdings konnt i den Delimiter net als Char machen... i hab no net viel ahnung von den umwandlungen etc.

hab mich halt dann für ; entschieden

und eh durchn Debugger naja... nachts um 3 kann man nimmer viel von mir erwarten - bin einfach nich draufgekommen

ehm wo is der unterschied zwieschen meiner und deiner Delimiter zeile?

cu
 

Zerolith

Mitglied
ich verstehs echt nicht... habs mit #13#10 au scho gemacht...

so ein müll

es wird einfach nciht "Getrennt"... der string ist und bleibt balblab1;blabalbal2;blfasbdfla3; usw...

ich bekomm ihn nicht getrennt!
 

Zerolith

Mitglied
und es kann nicht am String (der vom SocketServer gesendet wird) liegen

hab schon manuel n String mit 'terst;test;test;' probiert...

das gleiche :-((
 

Zerolith

Mitglied
oder auch nicht!

mist... hat nur bei dem beispiel string hingehauen..

die Items die vom scoket zurückgegeben werden enthalten auch abstände... dann funktioniert das ganze nich mehr...
 

Neue Beiträge