Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Import von einer csv - Datei in eine neue DBase Tabelle (https://www.delphipraxis.net/15988-import-von-einer-csv-datei-eine-neue-dbase-tabelle.html)

Crowbar 8. Feb 2004 14:43


Import von einer csv - Datei in eine neue DBase Tabelle
 
Hi,
mit der untenstehen Procedure exportiere ich meine DBase Datenbank in eine csv - Datei.
Delphi-Quellcode:
Procedure TFMain.csvExport;
Var
StringList : TStringList;
t         : Integer;
Zeile     : String;

begin
  Zeile:='';
  StringList:=TStringList.Create;
  try
   AdressTable.First;
   for t:=0 to AdressTable.FieldCount-1 do Zeile:=Zeile+AdressTable.Fields[t].FieldName+';';
   StringList.Add(Zeile);
   while not AdressTable.Eof do
    begin
      Zeile:='';
      for t:=0 to AdressTable.Fields.Count-1 do Zeile:=Zeile+AdressTable.Fields[t].AsString+';';
      StringList.Add(Zeile);
      AdressTable.Next;
    end;
   StringList.SaveToFile('Adressen.csv');
  finally
   StringList.Free;
  end;
end;
Nun, möchte ich aber auch diese csv - Datei wieder importieren können. D.h. ich möchte die "Adressen.csv" in einer neu erzeugten Tabelle importieren. Dabei sollen die Namen der Tabellenfelder und deren Inhalt aus der *.csv - Datei geholt werden. Hier komme ich nicht weiter, wie ich dies am "effektivsten" programmiere.
Hat jemand soetwas schon einmal programmiert?
Bin für jede Hilfe und Denkanstoss dankbar!

CU,
Crowbar

Luckie 8. Feb 2004 14:47

Re: Import von einer csv - Datei in eine neue DBase Tabelle
 
explodeexplode

grayfox 9. Feb 2004 02:51

Re: Import von einer csv - Datei in eine neue DBase Tabelle
 
hallo crowbar!

hier hab ich meine einlese-routine für stringgrids schnell für tables umgebaut - hoffe, es sind nicht zu viele fehler drinnen du kannst was damit anfangen.

Delphi-Quellcode:
{$UNTESTED}
var
  T: TextFile;
  inString: String;
  aValue: String;
  TrennPos, i: SmallInt;
begin
  AssignFile(T,'Adressen.csv');
  Reset(T);
  while not EOF(T) do begin
    Readln(T,instring);
    instring:= instring + ';';
    AdressTable.Append;
    for i:= 0 to AdressTable.Fields.Count-1 do begin
      TrennPos:= Pos(';',instring);
      aValue:= Copy(instring,1,TrennPos-1);
      Delete(instring,1,TrennPos);
      AdressTable.Fields[i].AsString:= Value;
    end;
    AdressTable.Post;
  end;
  CloseFile(T);
end;
mfg, stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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