StringGrid als CSV speichern

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
cRo
Beiträge: 11
Registriert: Di 17. Sep 2013, 15:33

StringGrid als CSV speichern

Beitrag von cRo »

Hallo zusammen,

ich bin Anfänger und habe eine Frage zu oben genannten Thema. Um das Problem zu lösen, wollte ich folgenden (nicht von mir selbst erstellten) Code benutzt:

Code: Alles auswählen

 
[79]function TForm1.SaveToCSV:Boolean;
var
  SD : TSaveDialog;
  I : Integer;
  CSV : TStrings;
  FileName : String;
[88]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) <> '.csv' Then FileName := FileName + '.csv';
    Screen.Cursor := crHourGlass;
    //Stringliste erzeugen
    CSV := TStringList.Create;
    Try
      //Stringliste füllen
[101]      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;
 
Jedoch bekomme ich beim Compilieren gleich mehrere Fehlermeldungen:
unit1.pas(79,26) Error: method identifier expected
unit1.pas(88,32) Error: Identifier not found "Self"
unit1.pas(101,25) Error: Identifier not found "Grid"
unit1.pas(101,54) Error: Identifier not found "Grid"
unit1.pas(233) Fatal: There were 4 errors compiling module, stopping

Da ich nicht weiß, wie man die Zeilennummern hinzufügt, hab ich sie manuell vor die entsprechenden Zeilen geschrieben. Über Hilfe wäre ich sehr dankbar.

Viele Grüße
cRo

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: StringGrid als CSV speichern

Beitrag von mse »

Hast du den Methoden header in der Klassendefinition aufgeführt?

Code: Alles auswählen

 
 TForm1 = class(TForm)
[...]
  public
   function SaveToCSV:Boolean;
[...]
 end;
 

cRo
Beiträge: 11
Registriert: Di 17. Sep 2013, 15:33

Re: StringGrid als CSV speichern

Beitrag von cRo »

Nein, hatte ich vergessen. Vielen Dank dafür. Ich schaue mal, ob die Funktion nun alles speichert wie sie soll.

Grüße
cRo

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2816
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: StringGrid als CSV speichern

Beitrag von m.fuchs »

Übrigens ist dieser Umweg gar nicht mehr nötig, TStringGrid bringt eine Methode namens SaveToCSVFile mit.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten