Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Index von TStringDynArray auswählen

  Alt 9. Nov 2004, 22:11
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
  Mit Zitat antworten Zitat