![]() |
Datenbank: access • Version: 2003 • Zugriff über: ADO
DelimitedText // CSV
Hi
ich habe hier eine Procedure zum auslesen von einer CSV und zum schreiben dieser Werte in eine Datenbank
Delphi-Quellcode:
ich hab mir das ergebnis befor ich in die tabelle schreibe mal in eine textfile kopieren lassen damit ich sehe, wo er teilt.
procedure TForm1.Button3Click(Sender: TObject);
var SL: TStringList; i: Integer; T: Textfile; SInString: String; begin if (<opendialog>.Execute) then begin SL := TStringList.Create; try AssignFile(T,<opendialog>.FileName); Reset(T); while (not Eof(T)) do begin ReadLn(T,SInString); SL.Delimiter := ';'; SL.DelimitedText := SInString; <deinetabelle>.Append; for i := 0 to SL.Count-1 do <deinetabelle>.Fields[I].AsString := SL.Strings[i]; <deinetabelle>.Post; end; finally SL.Free; end; end; CloseFile(T); end; Mein Problem es funktioniert alles gut nur: er nimmt das Leerzeichen auch als delimiter wie kann ich das ändern danke schon mal |
Re: DelimitedText // CSV
so ich habe es erst mal durch char ersetzen gemacht. aber ich glaub das geht ziemlich auf die kosten der performance wenn ich dann mal 600000 datensätze reinladen will. hier der code
Delphi-Quellcode:
SInString := StringReplace(SInString, ' ', '~~', [rfReplaceAll, rfIgnoreCase]);
SL.Delimiter := ';'; SL.DelimitedText := SInString; SL.Text := StringReplace(Sl.text, '~~', ' ', [rfReplaceAll, rfIgnoreCase]); |
Re: DelimitedText // CSV
Hier mal ein anderes Bsp wie man so ein text datei auch auslesen kann:
Delphi-Quellcode:
Vielleicht hilft dir das ja! ;)
procedure TForm1.Button1Click(Sender: TObject);
var s:String; Url_WKN :String; Url_Kurs :String; begin s:='710000.DE;32,92'; Url_WKN:= Copy(s,1,Pos('.',s)-1); // alles von S[7] bis S[;]-1 kopieren Delete(s,1,Pos(';',s)); // Jetzt alles von Anfang an bis incl. ";" löschen Url_Kurs:= Copy(s,1,Pos(';',s)-1); Delete(s,1,Pos(';',s)); end; |
Re: DelimitedText // CSV
@Hansi: Benutze lieber PosEx (bzw. einen Nachbau, wenn man nicht D7 oder höher besitzt) statt Delete, dann muss der Originalstring nicht verändert werden. Da schofs String wohl nicht gerade der kürzeste ist, spart das Einiges an Performance ein.
|
Re: DelimitedText // CSV
danke für den tip habs schon eingebaut :D ich weiss nicht ob es hier noch hergehört aber hat einer ahnung von csv parsen wenn nicht schreib ich mir so ein kleines programm kurz aber danke nochmal :D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz