AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TExportDataSet - Exportieren von DataSets in eine CSV-Datei
Thema durchsuchen
Ansicht
Themen-Optionen

TExportDataSet - Exportieren von DataSets in eine CSV-Datei

Ein Thema von CalganX · begonnen am 27. Okt 2004
Antwort Antwort
CalganX
Registriert seit: 21. Jul 2002
Hi,
ich habe hier im Praktikum angefangen eine Klasse zu schreiben, die ein beliebiges DataSet in eine CSV-Datei exportiert. Ich würde das Ergebnis gerne vorstellen.
Es handelt sich dabei - wie gesagt - nur um eine Klasse und um keine Komponente. Ich weiß noch nicht, wann und ob ich daraus mal eine Komponente mit einem Package machen werde. Aber ich denke, dass ich das irgendwann in Angriff nehmen werde.

Die Klasse besteht im Wesentlichen aus drei Dateien und einem Frame:
  1. uExportDataSet: diese Datei enthält die eigentlich Klasse TExportDataSet.
  2. uFieldCollection: diese Datei enthält die Klasse TFieldCollection. Darin werden die verfügbaren Felder gespeichert, um darüber auf die folgende Klasse zuzugreifen, um dort Einstellungen festzuhalten.
  3. uFieldCollectionItem: diese Datei enthält die Klasse TFieldCollectionItem. Mit ihr ist es möglich Einstellungen vorzunehmen für die jeweiligen Spalten (zum Beispiel benutzerdefinierte Namen).
  4. ufrmConfig: diese Datei enthält ein Frame zur einfachen Konfiguration. Ist noch nicht ganz ausgereift, kann man sich aber sicher mal ansehen und vielleicht auch verwenden.

Nun ein kleines Anwendungs-...

Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  exExporter: TExportDataSet;
  i: integer;
begin
  exExporter := TExportDataSet.Create;
  try
    { den Dateinamen festlegen für die Zieldatei }
    exExporter.FileName := frmConfig1.edtFileName.Text;
    { DataSet zuweisen, aus dem die Daten gelesen werden sollen }
    exExporter.DataSet := ClientDataSet1;
    { den Seperator wählen, der die Einträge trennt }
    exExporter.Seperator := frmConfig1.edtSep.Text[1];
    { festlegen, ob die kürzeren Einträge bis zum längsten Eintrag mit Leerzeichen aufgefüllt werden sollen }
    exExporter.FixedLength := frmConfig1.cbFixLength.Checked;
    for i:=0 to frmConfig1.lbFields.Items.Count-1 do
      { die Checklistbox aus dem Config-Frame durchlaufen und gucken, ob Felder ignoriert (= nicht im Ergebnis erscheinen) sollen }
      exExporter.Fields.Items[frmConfig1.lbFields.Items[i]].Ignored := not frmConfig1.lbFields.Checked[i];

    { zu letzt die Dateien exportieren }
    exExporter.ExportData;
  finally
    { und das Objekt wieder freigeben }
    exExporter.Free;
  end;
end;
Die Änderungen der Reihenfolge lässt sich durch einfaches verwenden der Funktionen der Eigenschaft Fields.
Ich habe auch ein Demoprojekt, was allerdings so Quick'n'Dirty ist, dass ich das nur sehr ungerne hochladen möchte.

Der SourceCode ist unkommentiert. Wer sich das allerdings ansieht und ein wenig von DataSets versteht wird da eigentlich - so denke ich zumindest - sehr schnell feststellen, dass der sich größtenteils von alleine erklärt.

Download (Version 1.0): (siehe Anhang)

Über Feedback würde ich mich sehr freuen...

Chris
Angehängte Dateien
Dateityp: zip exportdataset_class_v10_src.zip (3,5 KB, 30x aufgerufen)
 
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 04:20 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