AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DelimitedText // CSV
Thema durchsuchen
Ansicht
Themen-Optionen

DelimitedText // CSV

Ein Thema von schof · begonnen am 2. Jan 2006 · letzter Beitrag vom 2. Jan 2006
Antwort Antwort
schof

Registriert seit: 27. Sep 2005
Ort: Regensburg
47 Beiträge
 
Delphi 2005 Personal
 
#1

DelimitedText // CSV

  Alt 2. Jan 2006, 10:59
Datenbank: access • Version: 2003 • Zugriff über: ADO
Hi
ich habe hier eine Procedure zum auslesen von einer CSV und zum schreiben dieser Werte in eine Datenbank
Delphi-Quellcode:
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;
ich hab mir das ergebnis befor ich in die tabelle schreibe mal in eine textfile kopieren lassen damit ich sehe, wo er teilt.
Mein Problem es funktioniert alles gut nur: er nimmt das Leerzeichen auch als delimiter wie kann ich das ändern

danke schon mal
  Mit Zitat antworten Zitat
schof

Registriert seit: 27. Sep 2005
Ort: Regensburg
47 Beiträge
 
Delphi 2005 Personal
 
#2

Re: DelimitedText // CSV

  Alt 2. Jan 2006, 11:52
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]);
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#3

Re: DelimitedText // CSV

  Alt 2. Jan 2006, 12:18
Hier mal ein anderes Bsp wie man so ein text datei auch auslesen kann:


Delphi-Quellcode:
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;
Vielleicht hilft dir das ja!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: DelimitedText // CSV

  Alt 2. Jan 2006, 12:23
@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.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
schof

Registriert seit: 27. Sep 2005
Ort: Regensburg
47 Beiträge
 
Delphi 2005 Personal
 
#5

Re: DelimitedText // CSV

  Alt 2. Jan 2006, 15:15
danke für den tip habs schon eingebaut 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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz