Einzelnen Beitrag anzeigen

Black07

Registriert seit: 10. Jun 2007
24 Beiträge
 
#19

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren

  Alt 17. Jun 2007, 12:49
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_Sthen
          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
  Mit Zitat antworten Zitat