Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#12

Re: Problem: Procedure zum speichern eines grids auf FTP ser

  Alt 16. Mai 2008, 11:43
Hier mal der vereinfachte Code.
Damit vereinfacht sich auch der Aufruf.
Änderungen:
* "gescheiteter" Prozedurname
* Parameterliste abgespeckt und dafür lokale Variablen verwendet
* Sicherheitsüberprüfungen mit Assert
* try...finally zum Schutz der Resourcen

Delphi-Quellcode:
Procedure SaveStringGrid(Grid : TStringGrid; const FileName : String);
Var
  I : Integer;
  GridMem : TMemoryStream; // lokale Variable, kein Parameter !
  CSV : TStringList; // dito
Begin
  Assert(Assigned(Grid)); // Safety first
  Assert(Assigned(Datenmodul1));

  // Vorbereitung zum speichern der Datenbanken
  GridMem := TMemoryStream.Create;
  CSV := TStringList.Create;
  try
    //Speichern der Grids in Streams
    For I:=0 To Grid.RowCount -1 Do
      Begin
        Grid.Rows[i].Delimiter:=';';
        CSV.Add(StringReplace(Grid.Rows[i].DelimitedText,'',';',[rfReplaceAll]));
      End;
  // Speichern der Streams als Datei auf einem FTP Server
  CSV.SaveToStream(GridMem);
  // ganz wichtig: Stream muss zurück auf Anfang
  GridMem.Position := 0;

  Datenmodul1.IdFTP1.Put(GridMem,FileName);
  finally
    CSV.Free;
    GridMem.Free;
  end;
End;
Andreas
  Mit Zitat antworten Zitat