Thema: Delphi CSV Dateien einlesen

Einzelnen Beitrag anzeigen

DelphiRacer

Registriert seit: 28. Nov 2003
Ort: Königsbronn
8 Beiträge
 
Delphi XE3 Professional
 
#15

AW: CSV Dateien einlesen

  Alt 30. Mär 2013, 09:24
Aber ein Cast sollte doch funktionieren:
Delphi-Quellcode:
var
  c: Ansichar;
  d: char;
begin
  c := 'A';
  d := Char(c);
Das schon...
dafür eine Menge andere Fehler.

Es musste eine schnelle Lösung her.
Habe das Ganze jetzt so gelöst...
Liest "nur" die selbst gebastelten CSV-File.
Also "Text";daten;"Text";Text;Daten

Delphi-Quellcode:

uses
  function Read_CSV(SG: TStringGrid; Dateiname: String): Boolean;

.
.
procedure T_Zutaten.FormShow(Sender: TObject);
var t: string;

begin
  t:='C:\DB\Zutaten.csv';
  Read_CSV (StringGrid1,t);
end.
.
.
// CSV File Einlesen ===========================================================
function Read_CSV (SG: TStringGrid; Dateiname: String): Boolean;
var
 OutputFile: TextFile;
sOutputName: string;
          l: integer;
          c: integer;
        x,y: integer;
        s,t: string;

begin
  // Startwerte Reihe StringGrid
  y:=-1;

  sOutputname:=Dateiname;
  AssignFile(OutputFile, sOutputName);
  Reset(OutputFile);
  try
    while not Eoln(outputFile) do
    begin
      x:=0;
      y:=y+1;
      SG.RowCount:=y+1;
      ReadLn(OutputFile, t);
      l:=length(t);
      s:='';
      for c := 1 to l do
        begin
          if t[c]<> ';then if t[c]<> '"then s:=s+t[c];
          // Trennzeichen gefunden
          if t[c] = ';then
          begin
            if length(s)=0 then s:=' ';
            SG.Cells[x,y]:=s;
            s:='';
            x:=x+1;
            if y=0 then SG.ColCount:=x;
          end;
          // Zeilen Ende
          if c = l then
          begin
            if length(s)=0 then s:=' ';
            SG.Cells[x,y]:=s;
            s:='';
            x:=x+1;
            if y=0 then SG.ColCount:=x;
          end;
        end;
    end;
  finally
    CloseFile(OutputFile);
    Result:=True;
  end;
end;
Role
  Mit Zitat antworten Zitat