AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Stringgrid als CSV datei speichern.

Ein Thema von twospirit · begonnen am 22. Jan 2007 · letzter Beitrag vom 1. Nov 2008
Antwort Antwort
Seite 1 von 3  1 23   
twospirit

Registriert seit: 22. Jan 2007
7 Beiträge
 
#1

Stringgrid als CSV datei speichern.

  Alt 22. Jan 2007, 21:27
Hallo,

wir haben in unserer Ausbildung HPS(Höhere Programmier Sprachen) und dort lernen wir immoment mit Delphi ein bischen Programmieren, ich hatte bei einem Geschäfft Praktikum gehabt und sollte mal ihre Kasse nach bauen.
Dafür brauch ich eine art Datenbank, hab mich einfach mal für eine CSV-Datei entschieden und im Hintergrund ist eine Stringgrid was als Lager fungiert.
Ich habe ein bischen im Internet herum geschaut und habe eine Möglichkeit gefunden wie ich ein Stringgrid in eine CSV-Datei speichern kann.

Quellcode:
Delphi-Quellcode:
function TForm1.SaveToCSV:Boolean;
var
  SD : TSaveDialog;
  I : Integer;
  CSV : TStrings;
  FileName : String;
begin
  Try
  // Filedialog erzeugen
  SD := TSaveDialog.Create(Self);
  SD.Filter := 'CSV-Trennzeichen getrennt (*.csv)|*.CSV';
  //Filedialog ausführen
  If SD.Execute = True Then
  Begin
    //Filename zuweisen
    FileName := SD.FileName;
    If Copy(FileName,Pos('.',FileName),Length(FileName)-Pos('.',FileName)+1) <> '.csvThen FileName := FileName + '.csv';
    Screen.Cursor := crHourGlass;
    //Stringliste erzeugen
    CSV := TStringList.Create;
    Try
      //Stringliste füllen
      For I := 0 To Grid.RowCount - 1 Do CSV.Add(Grid.Rows[I].CommaText);
      //CSV speichern
      CSV.SaveToFile(FileName);
      Result := True;
    Finally
      CSV.Free;
    End;
  End;

  Finally
    SD.Free;
    Screen.Cursor := crDefault;
  End;
end;

//SaveToCSV ausführen (sample call)
procedure TForm1.BtnSaveClick(Sender: TObject);
begin
   SaveToCSV;
end;
Das funktioniert ganz gut, doch möchte ich nicht, dass er mich frag wo die Datei gespeichert werden soll, sondern er soll sie eigenständig irgendwo abspeichern.

Kennt sich da jemand aus und weis Rat?


MfG twoSpirit
  Mit Zitat antworten Zitat
Norbert987

Registriert seit: 27. Nov 2003
Ort: Aachen
74 Beiträge
 
Delphi 7 Professional
 
#2

Re: Stringgrid als CSV datei speichern.

  Alt 22. Jan 2007, 22:29
Erstmal Herzlich Willkommen twospirit!

In deinem Fall kannst du die Variablen SD (der Dialog der angezeigt wird) und Filename löschen. Bei "CSV.SaveToFile(FileName);" schreibst du nun statt FileName den Pfad rein, das wars.

Tobias

EDIT: auch die if Abfrage, ob die Dateiendung .csv ist fällt somit weg...
  Mit Zitat antworten Zitat
twospirit

Registriert seit: 22. Jan 2007
7 Beiträge
 
#3

Re: Stringgrid als CSV datei speichern.

  Alt 22. Jan 2007, 22:38
Hallo,

es funktioniert perfekt, danke viel mals.
> Erstmal Herzlich Willkommen twospirit!
Danke schön

MfG twoSpirit
  Mit Zitat antworten Zitat
delphin06

Registriert seit: 18. Jun 2006
154 Beiträge
 
#4

Re: Stringgrid als CSV datei speichern.

  Alt 17. Apr 2007, 18:28
gibt es auch ne funktion das alles wieder von der csv datei in das stringrid zu laden?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Stringgrid als CSV datei speichern.

  Alt 17. Apr 2007, 18:38
Natürlich geht das. Du musst nur alles umgekehrt machen:
Delphi-Quellcode:
procedure laden;
var h:TStrings; i:integer;
begin
h:=TStringlist.create;
try
  h.loadfromfile('xyz.csv'); //<-- der Dateiname
  for i:=o to h.count-1 do
   MeinStringgrid.rows[i].commatext:=h[i];
finally
  h.free;
end;

end;
Das wars schon.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
delphin06

Registriert seit: 18. Jun 2006
154 Beiträge
 
#6

Re: Stringgrid als CSV datei speichern.

  Alt 17. Apr 2007, 18:59
cool danke!
  Mit Zitat antworten Zitat
tadlanra

Registriert seit: 9. Sep 2008
Ort: Kleve
13 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 08:47
hallo
ich versuche gerade genau das, was hier im thread steht. nur ist es bei mir so, dass wenn ich eine csv datei in excel öffnen will ein Semikolon als spaltentrenner benötige. warum ist das so?

gibt es eine ähnliche funktion wie "commatext" die sich dann auf semikolon bezieht? derzeit ersetze ich halt alle kommas durch ';'
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 09:00
Hallo,
hilft Dir das?
StringGrid1.Rows[i].Delimiter := ';'
  Mit Zitat antworten Zitat
tadlanra

Registriert seit: 9. Sep 2008
Ort: Kleve
13 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 09:07
ah da bin ich auch schonmal drüber gestolpert und habs dann wieder vergessen mal auszutesten. werds mal versuchen. aber noch ne antwort warum man manchmal ';' und manchmal ',' und manchmal auch #9 benötigt als spaltentrenner? ist das excelversionsabhängig?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 09:21
Hallo,

nö, ich würd' mal sagen: Das ist phantasieabhängig.

Es heißt Commaseperated und deshalb nimmt Excel ;

Nein, dass ist eigentlich eine Sache der Vereinbarung. Nehme selbst gerne den senkrechten Strich (|), dann darf im Text auch mal ein Komma oder ein Semikolon sein.
http://de.wikipedia.org/wiki/CSV_(Dateiformat)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:21 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