Zitat von
alzaimar:
Also, ich versteh nicht, wieso man das mit einer
CSV-Komponente machen soll.
Das vorliegende Format ist das einer 'INI'-Datei. Man kann eine entsprechnde Komponente verwenden (TIniFile, TMemIniFile), wenn man Zugriff auf die einzelnen Segmente '[blabla]' haben möchte. Wenn nicht, reicht auch eine Stringlist.
Für die Trennung der per ';' getrennten Daten würde ich auf die Eigenschaften 'DelimiterChar' und DelimitedText der TStringlist zurückgreifen.
Da wird kein
CSV benötigt.
__________________________
Bin diesem Vorschlag mal gefolgt
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
Datei : TStringlist;
mecount : integer;
i : Integer;
begin
Datei := TStringlist.Create;
memo1.WordWrap:=false;
memo1.Lines.LoadFromFile('C:\test\text.ini');
mecount:=0;
mecount:=(memo1.Lines.count);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ii : Integer;
begin
For ii:=0 to memo1.Lines.Count - 1 do
begin
If leftstr(memo1.Lines[ii],6)='INFO_S' then
begin
listbox1.Items.Add(memo1.Lines.Strings[ii])
end
else
end;
end;
Damit bekomme ich die Daten (hier nur eine Suchanfrage) grob auseinander sortiert anhand der z.B. ersten 6 Zeichen.
Nur kann mir jedmand sagen wie genau ich nun die durch die ";" getrenten Daten im String finde und einzeln aus dem String herausbekommen.
Die Daten in der listbox sehen so aus:
Zitat:
INFO_SKAM320060421120523_2=haus .;;4578?.;;garten, ja!;;zu räumen.;;él.;
INFO_SKAM320060421121039=That thing ;;Sure?;;Nein .;;444;;¿-?;
INFO_SKAM3=JA.;;88888;;Korrekt.;;Für.;.;.;
INFO_SKAM30=Take back .;;777.;;+65.;;Bring zurück.;zu .;8542.;
und sollen - sagen wir mal auf 10 Editfelder verteilt werden.
"..." bis = Edit1
von = "..." bis ;#1 = Edit1
von ;#1 "..." bis ;#2 = Edit1
...
von ;#9 "..." bis ;#10 = Edit1
Wie / Womit müsste ich eine Abfrage Routine schreiben