bacho_sun |
Отправлено: 29.06.2005, 15:56 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
Подскажи если в курсе, как разом сохранить содержимое StringGrid1 в файле и
после вывести это с файла опять в StringGrid. |
|
olegenty |
Отправлено: 29.06.2005, 16:05 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Руками. При этом в начале файла хранишь структуру грида (количество столбцов и их заголовки и количество строк), а далее — содержимое строк, например, с разделителями, таким образом, что одна строка в файле = одной строке грида.
|
|
Gedeon |
Отправлено: 29.06.2005, 16:06 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
В стандартной гриде никак, такие методы есть у TAdvStrGrid.
|
|
VovaN |
Отправлено: 29.06.2005, 16:06 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 72
|
только вручную. Записал в файл размеры грида (mxn), считал размеры, считываеш данные. |
|
seg_r |
Отправлено: 30.06.2005, 08:24 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 74
|
вот так:
CODE |
int iFileHandle;
int iLength;
iFileHandle = FileCreate("main.dat");
FileWrite(iFileHandle, (char*)&(Form1->StringGrid1->ColCount), sizeof (Form1->StringGrid1->ColCount));
FileWrite(iFileHandle, (char*)&(Form1->StringGrid1->RowCount), sizeof (Form1->StringGrid1->RowCount));
for (int x=0;x<Form1->StringGrid1->ColCount;x++)
{
for (int y=0;y<Form1->StringGrid1->RowCount;y++)
{
iLength = Form1->StringGrid1->Cells[x][y].Length();
FileWrite(iFileHandle, (char*)&iLength, sizeof(iLength));
FileWrite(iFileHandle, Form1->StringGrid1->Cells[x][y].c_str(), Form1->StringGrid1->Cells[x][y].Length());
}
}
FileClose(iFileHandle);
|
если прочитать то так:
CODE |
iFileHandle = FileOpen("main.dat", fmOpenRead);
FileRead(iFileHandle, (char*)&(cc), sizeof (cc));
FileRead(iFileHandle, (char*)&(rc), sizeof (rc));
Form1->StringGrid1->ColCount=cc;
Form1->StringGrid1->RowCount=rc;
for (int x=0;x<cc;x++)
{
for (int y=0;y<rc;y++)
{
FileRead(iFileHandle, (char*)&iLength, sizeof(iLength));
char *buf;
buf = new char[iLength];
FileRead(iFileHandle, buf, iLength);
ss=AnsiString(buf);
ss=ss.SubString(0,iLength);
Form1->StringGrid1->Cells[x][y]=ss;
delete [] buf;
}
}
FileClose(iFileHandle);
|
в принципе в хелпе есть примерчики...
Отредактировано seg_r — 30/06/2005, 08:25 |
|
Rius |
Отправлено: 07.07.2005, 20:09 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
вот пример сохранения и чтения (написал для знакомства с XML):
|
|
Boyko |
Отправлено: 08.07.2005, 15:02 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 88
|
QUOTE (bacho_sun @ 29/06/2005, 14:56) | Подскажи если в курсе, как разом сохранить содержимое StringGrid1 в файле и
после вывести это с файла опять в StringGrid. |
Разом — никак.
А ручками — примерчик в HELP-е есть. |
|