Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Paradox Daten in CSV Datei schreiben? (https://www.delphipraxis.net/10823-paradox-daten-csv-datei-schreiben.html)

Computersklave 26. Okt 2003 01:47


Paradox Daten in CSV Datei schreiben?
 
Hi,

hab mal wieder ne Frage,

Ich möchte die Daten aus meiner Paradox Datenbank in eine CSV Datei schreiben.
Habe in einem Forum folgenden Code gefunden und entsprechend angepasst um Daten
in die CSV Datei zu schreiben, aber es wird nur der erste Datensatz geschrieben.


Delphi-Quellcode:
procedure ....
var
  f: Textfile;
 Ziel, Datensatz : String;
  Anzahl:integer;
  zahler:integer;
begin
    Anzahl:=TableExport.recordcount;
    showmessage(inttostr(Anzahl));
    TableExport.FindFirst;
    FlatGauge1.MaxValue:=anzahl;

  if SaveDialog1.Execute then begin
  Ziel := SaveDialog1.FileName;

      for zahler:= 0 to Anzahl do
          begin
           Datensatz := DBEdit1.text + ';' +
                        DBEdit2.text;
           FlatGauge1.Progress:=zahler;
           TableExport.FindNext;
          end;

  AssignFile(f, Ziel);
  try
    if FileExists(Ziel) = False then begin
      Rewrite(f);
      Writeln(f,'"TITEL1","TITEL1"');

    end else begin

      Reset(f);
      Append(f);

    end;

    Writeln(f, Datensatz);

  finally
    CloseFile(f);
  end;

end;
end;


Was ist da falsch? :wall:

Das muss ja hier irgendwo begraben liegen

Delphi-Quellcode:
 for zahler:= 0 to Anzahl do
          begin
           Datensatz := DBEdit1.text + ';' +
                        DBEdit2.text;
           FlatGauge1.Progress:=zahler;
           TableExport.FindNext;
          end;

Luckie 26. Okt 2003 03:11

Re: Paradox Daten in CSV Datei schreiben?
 
Delphi-Quellcode:
Datensatz := Datensatz + DBEdit1.text + ';' + DBEdit2.text+#13#10;
Du überschreibst die Variable Datensatz immer wieder. Dem nach dürfte nur der letzte DS in der Datei stehen und nicht der erste. :gruebel:

Computersklave 26. Okt 2003 04:26

Re: Paradox Daten in CSV Datei schreiben?
 
Thanks.

:oops: Irgendwie logisch. Manchmal fehlts im Kopf :roteyes:

Jetzt gehts.

By
have an nice day

eddy 26. Okt 2003 13:56

Re: Paradox Daten in CSV Datei schreiben?
 
Hallo Computersklave,

ich hab' mir mal Dein Quelltext angesehen und funktionsfähig umgestaltet (als Kommentar gekennzeichnete Zeilen mit Deinem ursprünglichen Quelltext).

Code:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  f: Textfile;
  Ziel, Datensatz : String;
  Anzahl:integer;
  zahler:integer;
begin
//  Anzahl:=TableExport.recordcount;
//  showmessage(inttostr(Anzahl));
//  TableExport.FindFirst;
  TableExport.First;
  FlatGauge1.MaxValue:=anzahl;
  FlatGauge1.MaxValue:= TableExport.recordcount;
  if SaveDialog1.Execute then begin
    Ziel := SaveDialog1.FileName;

    AssignFile(f, Ziel);
    try
      if FileExists(Ziel) = False then begin
        Rewrite(f);
        Writeln(f,'"TITEL1","TITEL1"');
      end
      else begin
        Reset(f);
        Append(f);
      end;

  //    for zahler:= 0 to Anzahl-1 do begin
      while not TableExport.Eof do begin
        Datensatz := DBEdit1.text + ';' + DBEdit2.text;
        Writeln(f, Datensatz);
  //      FlatGauge1.Progress:=zahler;
  //      TableExport.FindNext;
        TableExport.Next;
        FlatGauge1.Progress:= TableExport.RecNo;
      end;
    finally
      CloseFile(f);
    end;
  end;
end;
Allerdings ist die vorgeschlagene Variante nicht besonders universal. Schau Dir mal diese Seite an:
Datenbank in Excel schreiben und paradox-daten als csv speichern an.

mfg
eddy

Computersklave 28. Okt 2003 01:55

Re: Paradox Daten in CSV Datei schreiben?
 
Thanks. :-D

Habe mir die Links angeschaut :coder:

Funzt nun super

MrSpock 28. Okt 2003 06:46

Re: Paradox Daten in CSV Datei schreiben?
 
Hallo Computersklave,

schau dir vielleicht auch einmal die BatchMove Komponente an, die kann das Problem noch eleganter lösen.

eddy 28. Okt 2003 09:53

Re: Paradox Daten in CSV Datei schreiben?
 
Hallo MrSpock,

mit BatchMove nach CSV oder nach Excel oder beides?

BatchMove für den Transport von Daten mit Änderung der Struktur entsprechend Feld an den Anfang einer Tabelle hinzufügen habe ich erfolgreich adaptiert.

Das Problem von BatchMove ist wohl mehr sein Bekanntheitsgrad als seine Fähigkeiten.

Unter
Code:
while not Tab.Eof do begin ...
  .....
  Tab.Next;
end;
kann man sich wohl mehr vorstellen als unter
Code:
  ....
  BatchMove.Execute;
  ....
obwohl man mit weniger Befehlen mehr erreichen kann.

Zurück zum Thema: Du weist immer wieder darauf hin, daß man sich BatchMove anschauen soll.

Dieser Hinweis reicht aber wohl nicht oder
wird von fast allen ignoriert oder
kann von den meisten Lösung-Suchenden nicht umgesetzt werden oder
wird umgesetzt und die Umsetzung nicht verraten.

Deshalb habe ich einen neuen Beitrag dazu erzeugt: Paradox-Dateien mit BatchMove nach TXT oder CSV übertragen

mfg
eddy

MrSpock 28. Okt 2003 10:04

Re: Paradox Daten in CSV Datei schreiben?
 
Hallo eddy,

BatchMove funktioniert nur nach CSV, nicht direkt nach Excel.


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