![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Cохранение StringGrid [D7, WinXP]
tamagavk © (2004-06-21 15:57:00)У меня такая проблема: У меня есть таблица с какими-то данными, как мне сделать так, чтобы при выходе из программы все табличные данные сохранялись (наверно сохранялись в файл, а может я и не прав) и чтобы при следующем запуске программы все мои данные былы в таблице.Конечно сформулировал по-тупому, но думаю вы меня поняли. Желательно привести пример.Заранне спасибо.
tamagavk (2004-06-22 13:37:00) [21]Ну че меня никто не понимает :-))))))))
Ну есть прога. При выходе из проги надо сохранить StringGrid. В файл вы мне подсказали как. Но в программе идет обращение к этому файлу assignfile(f,'C:\1.txt') (место я указываю сам) НУ Если я запущу программу на чужом жестком диске текстовой файл не найдется ,если его не положить на С:\, и программа не запустится Я же не буду просить каждого, кто будет пользоваться программой, положить текстовой файл на диск С:\ Пользователи наверно будут класть файл в нужную для себя дирректорию. КАК БЫТЬ?
Anatoly Podgoretsky (2004-06-22 12:54:00) [22]tamagavk (22.06.04 12:42) [11]
Ни с чего не брал, а отвечаю на твой вопрос "чтобы прога не обращалась к жесткому диску"
Если нет ни дискеты ни диска, то это означает что твоя программа находится в сети или в Сети, ну тогда там надо иметь права.
Плохиш (2004-06-22 12:49:00) [23]
> Просто лежит файл(экзэшник) и текстовый документ,в который
> я записываю данные StringGrid, на чужом жестком диске. И
> ничего нетуни дискеты, ни диска.
:-))) Ты бы сам сначала разобрался, что надо
tamagavk (2004-06-22 12:42:00) [24]C чего вы взяли, что я буду запускать файл с дискеты?
Просто лежит файл(экзэшник) и текстовый документ,в который я записываю данные StringGrid, на чужом жестком диске. И ничего нету ни дискеты, ни диска. Может воспользоваться поиском моего текстового файла?Короче, надо сделать так, чтобы при запуске моей программы(с любого компьютера) текстовой файл был задействован. Для этого наверно надо поиск? КАК?
Anatoly Podgoretsky (2004-06-22 12:30:00) [25]assignfile(f,'A:\1.txt')
tamagavk (2004-06-22 12:27:00) [26]Ну блин, мне надо сделать так, чтобы если я перенес мою прогу на другой компьютер, она работала. На другом компьютере текстового файла, в который я сохраняю StringGrid, нет же. А программа будет искать его .Я же указываю путь assignfile(f,'C:\1.txt')
Как мне оформить все это, чтобы прога не обращалась к жесткому диску. Можно сделать файл-ресурс(res SND_RESOURCE)? Если можно, то как? Или приведите свое решение данной проблемы
begin...end (2004-06-22 10:09:00) [27]
> [6] tamagavk (22.06.04 00:17)
> в строке assignfile (f, 'Filename' ); мой текстовой файл ищется на диске
Это Вы сами придумали?
> А как его считывать из ресурса и записывать в ресурс
В какой ресурс?
tamagavk (2004-06-22 09:50:00) [28]Удалено модератором
tamagavk (2004-06-22 00:17:00) [29]Я делаю первым способом:
в строке assignfile (f, 'Filename' ); мой текстовой файл ищется на диске. А как его считывать из ресурса и записывать в ресурс.
Напишите пожайлуста код
zep (2004-06-21 17:34:00) [30]или так
сохранить:
begin
if savedialog1.execute then
with TStringList.Create do
try
for i:=0 to stringgrid1.ColCount-1 do
Add(stringgrid1.Cols[i].CommaText);
SaveToFile(savedialog1.filename)
finally
Free
end;
end;
Открыть опять же соответственно так:
begin
if OpenDialog1.Execute then
with TStringList.Create do
try
LoadFromFile(OpenDialog1.FileName);
stringgrid1.RowCount:=Count;
for i:=0 to Count-1 do
stringgrid1.Cols[i].CommaText:=Strings[i]
finally
Free
end;
end;
zep (2004-06-21 17:21:00) [31]попробуй так
Как мне сохранить целый Stringgrid со всеми ячейками в файле?
Procedure
SaveGrid;
var f:textfile;
x,y:integer;
begin
assignfile (f, 'Filename' );
rewrite (f);
writeln (f,stringgrid.colcount);
writeln (f,stringgrid.rowcount);
For X:= 0 to stringgrid.colcount- 1 do
For y:= 0 to stringgrid.rowcount- 1 do
writeln (F, stringgrid.cells[x,y]);
closefile (f);
end ;
Procedure LoadGrid;
var f:textfile;
temp,x,y:integer;
tempstr: string ;
begin
assignfile (f, 'Filename' );
reset (f);
readln (f,temp);
stringgrid.colcount:=temp;
readln (f,temp);
stringgrid.rowcount:=temp;
For X:= 0 to stringgrid.colcount- 1 do
For y:= 0 to stringgrid.rowcount- 1 do begin
readln (F, tempstr);
stringgrid.cells[x,y]:=tempstr;
end ;
closefile (f);
end;
Andy BitOff (2004-06-21 17:13:00) [32]В цикле читаешь ячейки (например в StringList) и между полями вставляешь любой разделитель, это save, а когда читаешь, также в цикле при нахождении разделителя, следующий текс в следующую ячейку.
Еще как вариант, у StringGrid.Cols есть SaveToFile, тоже саме есть и у Rows.
tamagavk (2004-06-21 16:54:00) [33]StringGrid
Andrey V. (2004-06-21 16:26:00) [34]Что Вы таблицей называете?