Ich würde die Prozedur so umbauen.
In der Parameterliste all die Sachen
die man von aussen in der Prozedure benötigt.
Wie das StringGrid, die
FTP Session und den Dateinamen.
Der MemoryStream und die StringList werden nur
intern in der Prozedur benutzt und es reicht auch dann
sie nur intern als Variablen zu führen.
Delphi-Quellcode:
Procedure Save(Grid:TStringGrid; ftpSession:TidFTP; FileName:
String);
var
I : Integer;
GridMem : TMemoryStream;
CSV : TStringList;
Begin
// Vorbereitung zum speichern der Datenbanken
GridMem := TMemoryStream.Create;
CSV := TStringList.Create;
//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);
ftpSession.Put(GridMem,FileName);
CSV.Free;
GridMem.Free;
End;
Grüße
Klaus