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;
}