Obiekt TStringGrid i dopisywanie jego wiersza do pliku .csv

Nie mogę sobie poradzić. Mianowicie funkcja zaprezentowana na forum, odpowiedzialna za zapisywanie zawartości obiektu StringGrid do pliku .csv działa super. Dla przypomnienia jest poniżej. Mój obiekt StringGrid składa się z jednego wiersza i chcę aby za każdym podczas wywoływania zapisywania funkcji FileSaveClick dane z wiersza StringGrid były dopisywane do kolejnych wierszy arkusza pliku csv, tak abym nie tracił poprzednich danych już tam zapisanych. Proszę o przeróbkę tej funkcji. Za pomoc z góry dziękuję i pozdrawiam
- Kod: Zaznacz cały
void protokol::SaveToFile(AnsiString FileName, TStringGrid *Grid,
bool csv)
{
TStringList *Lista = new TStringList;
String txt_1 = "", txt_2 = "";
if(!csv)
Lista->Add("\"Col" + (AnsiString)Grid->ColCount + "\";\"ROW" + (AnsiString)Grid->RowCount + "\"");
for(int i = 0; i < Grid->RowCount; i++)
{
for(int j = Grid->ColCount - 1; j >= 0; j--)
{
String temp = Grid->Cells[j][i];
if(temp.SubString(temp.Length(), temp.Length() + 1) == ";")
temp = Grid->Cells[j][i] + "'";
if(!csv)
txt_1 = ";\"" + temp + "\"" + txt_1;
else
txt_1 = "\"" + temp + "\";" + txt_1;
if(!csv && i == 0)
{
txt_2 = (AnsiString)Grid->ColWidths[j] + ";" + txt_2;
if(j == 0)
Lista->Add(txt_2);
}
}
Lista->Add(txt_1);
txt_1 = "";
}
Lista->SaveToFile(FileName);
delete Lista;
}