Ich habe da mal wieder eine Frage...:
und zwar trenne ich einen String mit Explode und lasse die einzelnen Strings in einer Listview eintragen. Das funzt auch alles prima. Doch wenn in meiner
SQL-Abfrage mehr als ein Datensatz ausgegeben wird, dann werden die Strings zwar getrennt, aber nicht oderntlich eingetragen, da das Array mit allen Datensätzen gefüllt ist und ich es nicht schaffe mit einer Schleife einen Index aus dem Array wählen kann...
Hier mal Code:
Delphi-Quellcode:
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray;
var
SepLen: Integer;
F, P: PChar;
ALen, Index: Integer;
begin
SetLength(Result, 0);
if (S = '') or (Limit < 0) then Exit;
if Separator = '' then
begin
SetLength(Result, 1);
Result[0] := S;
Exit;
end;
SepLen := Length(Separator);
ALen := Limit;
SetLength(Result, ALen);
Index := 0;
P := PChar(S);
while P^ <> #0 do
begin
F := P;
P := AnsiStrPos(P, PChar(Separator));
if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F);
if Index >= ALen then
begin
Inc(ALen, 5);
SetLength(Result, ALen);
end;
SetString(Result[Index], F, P - F);
Inc(Index);
if P^ <> #0 then Inc(P, SepLen);
end;
if Index < ALen then SetLength(Result, Index);
end;
Delphi-Quellcode:
ListView1.Clear;
Timer1.Enabled:=True;
sl := TStringList.Create;
sl.Add('$db_server='+Edit1.Text);
sl.Add('$db_name='+Edit2.Text);
sl.Add('$db_user='+Edit3.Text);
sl.Add('$db_passwort='+Edit4.Text);
sl.Add('$Datum='+DateToStr(DateTimePicker1.Date) +',');
sl.Add('$Zeit=08:00' +',');
sl.Add('$mode=read');
try
StrArry := Explode(',', idhttp1.Post('http://xxxxx.com/xxx.php',sl), 0);
// Hier müsste doch per Schleife der Index des Arrays ausgewählt werden. Habe mit Array kaum Erfahrung..
ListView1.Items.Add;
ListView1.Items[ListView1.Items.Count-1].Caption:=StrArry[0];
with ListView1.Items[ListView1.Items.Count-1].SubItems do begin
Add(StrArry[1]);
Add(StrArry[2]);
Add(StrArry[3]);
Add(StrArry[4]);
end;
sl.Clear;
end;
except
end;
danke im vorraus