Последние записи
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
10th
Май
Запись и чтение из файла в StringList
Posted by Chas under Пост-обзор
Добрый вечер, форумчане! Подскажите, пожалуйста, как написать следующие коды (процедуры для кнопок):
1. Запись данных из таблицы Stringgrid в файл ?
2. Запись данных из файла в Stringgrid ?
Serge_Bliznykov:
ну, это неоднократно решалось на данном форуме.
И вариантов решения может быть много.
вот, например, один из вариантов, которыя я уже публиковал здесь на форуме:
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, StringReplace(Cells, #13#10, '$@$', [rfReplaceAll, rfIgnoreCase]));
end;
CloseFile(F);
end;
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
iTmp, i, k: Integer;
strTemp: String;
begin
AssignFile(f, FileName);
Reset(f);
with StringGrid do
begin
// Get number of columns
Readln(f, iTmp);
ColCount := iTmp;
// Get number of rows
Readln(f, iTmp);
RowCount := iTmp;
// loop through cells & fill in values
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
begin
Readln(f, strTemp);
strTemp := StringReplace(strTemp, '$@$', #13#10, [rfReplaceAll, rfIgnoreCase]);
Cells := strTemp;
end;
end;
CloseFile(f);
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
SaveStringGrid(StringGrid1, 'c:\temp.txt');
ShowMessage('Save done.');
end;
procedure TForm3.BitBtn3Click(Sender: TObject);
begin
LoadStringGrid(StringGrid1, 'c:\temp.txt');
ShowMessage('Load done.');
end;

