FILE *f;
f = fopen("file.txt", "w");
int rows = StringGrid1->RowCount;
fwrite(&rows, sizeof(rows), 1, f);
for(int i=0; i<=StringGrid1->ColCount-1; i++)
for(int j=0; j<=StringGrid1->RowCount-1; j++)
{
AnsiString s = StringGrid1->Cells[j];
char *d = s.c_str();
fwrite(d, sizeof(d), 1, f);
}
fclose(f);
StringGrid
Запись в файл:
Код:
Считываю из файла:
Код:
FILE *f;
f = fopen("file2.txt", "r");
fread(&rows, sizeof(rows), 1, f);
StringGrid1->RowCount = rows;
for(int i=0; i<=StringGrid1->ColCount-1; i++)
for(int j=0; j<=StringGrid1->RowCount-1; j++)
{
fread(&s, strlen(s)+3, 1, f);
str = (AnsiString)s;
StringGrid1->Cells[j] = s;
}
fclose(f);
f = fopen("file2.txt", "r");
fread(&rows, sizeof(rows), 1, f);
StringGrid1->RowCount = rows;
for(int i=0; i<=StringGrid1->ColCount-1; i++)
for(int j=0; j<=StringGrid1->RowCount-1; j++)
{
fread(&s, strlen(s)+3, 1, f);
str = (AnsiString)s;
StringGrid1->Cells[j] = s;
}
fclose(f);
Подскажите, пожалуйста, как правильно написать.
Цитата:
Originally posted by narcotic
Здавствуйте. Я пытаюсь сохранить данные из StringGrid в текстовый файл. Если я записываю в ячейки по одному символу, то при считывании из файла данные заносятся в ячейки нормально. А если больше символов, то выводится не понятно, что. Что-то я запутался здесь. Вот то, что я писал.
Запись в файл:
Считываю из файла:
Подскажите, пожалуйста, как правильно написать.
Здавствуйте. Я пытаюсь сохранить данные из StringGrid в текстовый файл. Если я записываю в ячейки по одному символу, то при считывании из файла данные заносятся в ячейки нормально. А если больше символов, то выводится не понятно, что. Что-то я запутался здесь. Вот то, что я писал.
Запись в файл:
Код:
FILE *f;
f = fopen("file.txt", "w");
int rows = StringGrid1->RowCount;
fwrite(&rows, sizeof(rows), 1, f);
for(int i=0; i<=StringGrid1->ColCount-1; i++)
for(int j=0; j<=StringGrid1->RowCount-1; j++)
{
AnsiString s = StringGrid1->Cells[j];
char *d = s.c_str();
fwrite(d, sizeof(d), 1, f);
}
fclose(f);
f = fopen("file.txt", "w");
int rows = StringGrid1->RowCount;
fwrite(&rows, sizeof(rows), 1, f);
for(int i=0; i<=StringGrid1->ColCount-1; i++)
for(int j=0; j<=StringGrid1->RowCount-1; j++)
{
AnsiString s = StringGrid1->Cells[j];
char *d = s.c_str();
fwrite(d, sizeof(d), 1, f);
}
fclose(f);
Считываю из файла:
Код:
FILE *f;
f = fopen("file2.txt", "r");
fread(&rows, sizeof(rows), 1, f);
StringGrid1->RowCount = rows;
for(int i=0; i<=StringGrid1->ColCount-1; i++)
for(int j=0; j<=StringGrid1->RowCount-1; j++)
{
fread(&s, strlen(s)+3, 1, f);
str = (AnsiString)s;
StringGrid1->Cells[j] = s;
}
fclose(f);
f = fopen("file2.txt", "r");
fread(&rows, sizeof(rows), 1, f);
StringGrid1->RowCount = rows;
for(int i=0; i<=StringGrid1->ColCount-1; i++)
for(int j=0; j<=StringGrid1->RowCount-1; j++)
{
fread(&s, strlen(s)+3, 1, f);
str = (AnsiString)s;
StringGrid1->Cells[j] = s;
}
fclose(f);
Подскажите, пожалуйста, как правильно написать.
StringGrid1->Rows->Text?
По данному компоненту имею ряд вопросов. Заранее благодарю за помощь.
:!!!:Пролог: чтение из файла("wb"). Натыкаемся на значение символа 0х01...0х1F.
:-? 1. Вопрос: Как отобразить, в ячейки StringGrid, подобный символ, желательно по аналогии с DOS-ской раскладкой (ниодин шрифт, в компоненте, такую возможность не дает).
:-? 2. Как прочитать массив выделенных ячеек?
:-? 3. Как программно выделить ячейки(>одной)?
:-? 4. Возможно "рваное" выделение ячеек?
пояснение к п.4.: Col1/Row1 до Col2/Row2 плюс Col3/Row3 плюс Col4/Row4 до Col5/Row5.
С Уважением Wolf
PS: по первому вопросу... как-то задается массив(побитгый Nх8х8 ) и производится его чтение как символ... чтото подобное делали, в свое время, для создание красотулек... еще под DOS-ом... забыл:(
А вот ты не задумывался над строчкой
Код:
fread(&s, strlen(s)+3, 1, f);
???
как strlen вычислит длину s ,если s только предстоит считать?
почему бы не воспользоваться fgets или fscanf ???
(просто я никогда не пользовался fread)
Цитата:
Originally posted by Anton Chik
2narcotic: Я так понимаю в файл у тебя все удачно записывается...
А вот ты не задумывался над строчкой
???
как strlen вычислит длину s ,если s только предстоит считать?
почему бы не воспользоваться fgets или fscanf ???
(просто я никогда не пользовался fread)
2narcotic: Я так понимаю в файл у тебя все удачно записывается...
А вот ты не задумывался над строчкой
Код:
fread(&s, strlen(s)+3, 1, f);
???
как strlen вычислит длину s ,если s только предстоит считать?
почему бы не воспользоваться fgets или fscanf ???
(просто я никогда не пользовался fread)
Я решил не морочатся с fwrite и fread. Я просто записываю данные в TMemo и оттуда записываю данные в файл. Точно так же и считываю данные.