Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2010, 02:54   #1
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию Delphi. Save Stringrid To File

procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
i, k: Integer;
begin
AssignFile(f, FileName);
Rewrite(f);
with StringGrid do
begin
// Write number of Columns/Rows
Writeln(f, ColCount);
Writeln(f, RowCount);
// loop through cells
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Writeln(F, Cells[i, k]);
end;
CloseFile(F);
end;

Нужно:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
вызов процедуры
end;

end.

Только точно не знаю, достаточно ли этого, чтобы StringGrid сохранить в файл.
Neroaz вне форума Ответить с цитированием
Старый 03.04.2010, 07:35   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
достаточно ли этого, чтобы StringGrid сохранить в файл.
если потом ты сможешь восстановить из этого файла stringGrid в нужном тебе виде и с нужными данными значит достаточно

хотя я бы попробовал такой вариант

Код:
Writeln(F, i, #9, j, #9,  Cells[i, k]); // вместе со значением в строке записывать и его координаты
// а не писать размеры вначале 
Writeln(f, ColCount);
Writeln(f, RowCount);
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 03.04.2010 в 07:42.
evg_m вне форума Ответить с цитированием
Старый 03.04.2010, 07:35   #3
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
if OpenDialog1.Execute then
SaveStringGrid(StringGrid1, OpenDialog1.FileName);
Google2010 вне форума Ответить с цитированием
Старый 03.04.2010, 08:10   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Google2010, +1


Цитата:
Код:
Writeln(F, i, #9, j, #9,  Cells[i, k]); // вместе со значением в строке записывать и его координаты
// а не писать размеры вначале
evg_m, извините, коллега, но я с Вашим предложением КАТЕГОРИЧЕСКИ не согласен! ну, писать координаты, можно, хоть это и приведёт к резкому усложнению кода чтения — вместо одно readln будет чтение строки, разбор её на координаты и т.д.
а вот если не писать размерность вначале сохранённого файла, тогда откуда брать размеры грида? Каждый раз проверять, если координата больше, чем текущая и увеличивать размер stringgrid'а ? Ваш метод хорош только в том случае, когда имеется сильно разреженный грид: сам грид большого размера, а заполнена пара/другая ячеек. Тогда, конечно, скорость чтения Вашим способом будет намного эффективнее. но тогда надо писать только непустые ячейки..

В любом случае, лично я автору топика рекомендую оставить тот способ, который у него написан.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2010, 18:11   #5
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию

Google2010
Спасибо. Это то что мне нужно было.
Цитата:
Сообщение от Google2010 Посмотреть сообщение
Код:
if OpenDialog1.Execute then
SaveStringGrid(StringGrid1, OpenDialog1.FileName);
Neroaz вне форума Ответить с цитированием
Старый 03.04.2010, 18:56   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Ваще оригинально!!! Товарисч раскидал процедуры своей проги по разным постам на форуме... А потом соберет все в кучку и сдаст проект... С миру по нитке - студенту на стипендию!
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чём разница между unit, header file, cpp file? TwiX Общие вопросы C/C++ 6 29.04.2012 19:49
save file delphi keef Помощь студентам 16 28.02.2010 14:08
StrinGrid в Delphi TaYgA Помощь студентам 8 19.10.2009 17:17
Delphi + Video file toxich Мультимедиа в Delphi 8 01.08.2009 16:42
как вставить swf file в delphi Altera Компоненты Delphi 4 18.02.2008 20:12