AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DBGRID export nach csv mit Titel
Thema durchsuchen
Ansicht
Themen-Optionen

DBGRID export nach csv mit Titel

Ein Thema von Luckner · begonnen am 28. Aug 2014 · letzter Beitrag vom 29. Aug 2014
Antwort Antwort
Seite 1 von 2  1 2      
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 14:18
Datenbank: Firebird • Version: 2.5 • Zugriff über: Dataset
Hallo,
habe hier eine Routine gefunden, mit der ich die Datensätze aus einem DBGrid in csv-Datei exportieren kann. Das klappt ohne Titel auch gut. Wie kann ich die Titel übernehmen? Hier die Procedure:

Delphi-Quellcode:
procedure TFrameArtikel.ButtonCsvExportClick(Sender: TObject);
  const
  Delim = ';';
var
  S: String;
  I: Integer;
  Stream: TFileStream;
begin
  Stream := TFileStream.Create('c:\temp\Artikel.csv', fmCreate);
  DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Open;
  DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Last;
  DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.First;

  while not DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Eof do
  begin
    S := '';

    for I := 0 to JvDBGridArtikelCSV.Columns.Count - 1 do
      S := S + TColumn(JvDBGridArtikelCSV.Columns[I]).Field.AsString + Delim;

    S := S + CHR(13);
    Stream.Write(PChar(S)^, Length(S));
    DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Next();
  end;

  Stream.Free();
  DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Close;
end;
Danke.

Geändert von mkinzler (29. Aug 2014 um 10:40 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 14:36
Hol Dir doch Anregungen bei Uwe Raabe: http://www.uweraabe.de/Blog/2013/11/...ns-csv-export/
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#3

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 14:50
TStringList?

Eine für die Datei und eine für die (aktuelle) Zeile

Columns durchgehen und per Add die Spaltennamen in ZeilenListe
danach CommaText der ZeilenListe per Add in die CSVListe. (oder DelimitedText mit eigenem Delimiter und StrictDelimiter=True)
Nur je Zeile das Selber nochmal für die Feldinhalte
und am Ende noch ein SaveToFile.



CHR(13) ... meintest du nicht eher CHR(10) aka #10, oder wenigstens sLineBreak?
Einige Programme kommen mit #13 nicht klar.
OK, das alte Nodepad kommt mit der #10 nicht klar, aber fast alle Windowsprogramme kennen #13#10.


PS: Schau mal ob dein DataSet nicht sogar ein SaveToFile besitzt.



[edit]
Hat mir Uwe etwa zur Hälfte abgeguckt?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Aug 2014 um 14:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 14:56
Oder den verlinkten Code nehmen, das Dataset und den Dateinamen übergeben und glücklich sein. Immer diese Ignoranz *grmpf*
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 15:02
Oder den verlinkten Code nehmen, das Dataset und den Dateinamen übergeben und glücklich sein. Immer diese Ignoranz *grmpf*
Öhm und dann wird das so wie im DBGrid in die CSV geschrieben? Halte ich für ein Gerücht
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 15:06
Schaut euch mal den Source an.
Die Spalten werden über das Grid iteriert und nicht über das DataSet.
Das DataSet wird nur zum Durchlaufen aller Datensätze verwendet.

Aber auch ein JvDBGrid sollte eine Property für die Überschriften haben.
Ich vermute mal, dass JvDBGrid.Columns[i].Title.Caption die gewünschten Überschriften liefert.
Peter
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#7

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 15:23
Wenn es was kosten darf kann man auch das dbadvgrid von TMS nehmen; damit bekommt man CSV-Export und auch etliche andere Exportformate (XML, Excel usw.) sehr einfach hin.

Ralf
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 16:18
Auch die DevExpress-Grids bieten fertige Exportfunktionen (CSV, XLS, PDF, ...) und andere Komponentensamlungen bestimmt ebenfalls.
Und es gibt natürlich spezielle Exportgeneratoren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 16:36
Das JvDBGrid hat eine Property für die Überschriften. Genau, wie bei Jasocul beschrieben. Aber wie in dieser Procedure benutzen? Irgendwie in der schon vorh. Schleife oder schon davor?

Luckner
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: DBGRID export nach csv mit Titel

  Alt 28. Aug 2014, 16:38
Davor, oder willst Du bei jedem Datensatz noch einmal die Überschriften ermitteln? Kann man zwar machen, bringt aber nichts, es sei denn, das Programm läuft einem zu schnell
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:39 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