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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2018, 03:15   #1
voolf
 
Регистрация: 10.06.2018
Сообщений: 4
По умолчанию данные из record в -> stringGrid -> файл

есть у меня запись:
Цитата:
Type
TStr=record


pip,posada,xaracter,zarplata:string[20];
adresa:string[10];
tel:string[15];
Nom:string[3];

Str:TStr;
которая заполняется через StringGrid и которая должна записываться в файл, но
не могу записать все строки(понял только как записать 1 строку), как это можно сделать ?

Цитата:
AssignFile(F,'test.txt');
Rewrite(F); p:=1;

begin

Str.Nom:=StringGrid1.Cells[0,p];
Str.pip:=StringGrid1.Cells[1,p];
Str.adresa:=StringGrid1.Cells[2,p];
Str.tel:=StringGrid1.Cells[3,p];
Str.posada:=StringGrid1.Cells[4,p];
Str.xaracter:=StringGrid1.Cells[5,p];
Str.zarplata:=StringGrid1.Cells[6,p];

Write(F,Str);
end;


CloseFile(F);
end;

Последний раз редактировалось voolf; 11.06.2018 в 03:18.
voolf вне форума Ответить с цитированием
Старый 11.06.2018, 10:05   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,537
По умолчанию

Дык и надо файл определить не как текстовый, а как File of TStr, назвав его, к примеру, File.dat А можно для записи все поля структуры объединить в одну строку, разделив их не встречающимся в полях символом-разделителем, например, / . Тогда можно будет хранить и как текстовый; кстати, при необходимости его можно было бы редактировать обычным Блокнотом. Но при считывании строку придется распарсить и "разогнать" по нужным полям.
TmpStr := Str.Nom + '/' + Str.pip + '/' + .....

Последний раз редактировалось digitalis; 11.06.2018 в 10:12.
digitalis вне форума Ответить с цитированием
Старый 11.06.2018, 19:43   #3
voolf
 
Регистрация: 10.06.2018
Сообщений: 4
По умолчанию

об типизированных файлах я знаю(специально изменил на txt, не мог посмотреть dat)
может я плохо обьяснил или вообще настолько отупел:
у меня есть несколько колонок(nom,pop,adresa,tel) я не могу эти колонки сохранить в файл.Точнее могу, но для каждой ячейки нужно писать № столбца и строки.
например
r.Nom:=StringGrid1.Cells[1,0] и это только для 1 ячейки, А у меня длинна колонок будет большая...
может как-то в цикл загнать? добавлять 1?
r.Nom:=StringGrid1.Cells[1,i] где і строки, которые идут последовательно в столбце
voolf вне форума Ответить с цитированием
Старый 11.06.2018, 21:49   #4
voolf
 
Регистрация: 10.06.2018
Сообщений: 4
По умолчанию

спасибо за помощь, даже рештл
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var

i,j:integer;

begin


AssignFile(F,'test.txt');
Rewrite(F);
For i:=1 to StringGrid1.RowCount-1 do
begin
//ShowMessage(StringGrid1.Cells[j,i]);
{Str.Nom:=StringGrid1.Cells[1,1];}

Str.adresa:=StringGrid1.Cells[0,i];
Str.tel:=StringGrid1.Cells[1,i];
Str.posada:=StringGrid1.Cells[2,i];
Str.xaracter:=StringGrid1.Cells[3,i];
Str.zarplata:=StringGrid1.Cells[4,i];

Write(F,Str);
end;


CloseFile(F);
ShowMessage ('Çàïèñàíî');

end;


procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;

begin



AssignFile(F,'test.txt');
Reset(F);
StringGrid1.RowCount := FileSize(f)+1;
For i:=1 to StringGrid1.RowCount-1 do
begin
Read(F,Str);

StringGrid1.Cells[0,i]:=Str.adresa;
StringGrid1.Cells[1,i]:=Str.tel;
StringGrid1.Cells[2,i]:=Str.posada;
StringGrid1.Cells[3,i]:=Str.xaracter;
StringGrid1.Cells[4,i]:=Str.zarplata;

end;


CloseFile(F);
ShowMessage ('Ïðî÷èòàíî');
end;
ждите, еще тупые вопросы будут
voolf вне форума Ответить с цитированием
Старый 12.06.2018, 01:24   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от voolf Посмотреть сообщение
об типизированных файлах я знаю(специально изменил на txt, не мог посмотреть dat)
Поставьте себе например Total Commander и смотрите любые файлы. В любом из 5 вариантов. (Пять вариантов это в версии 8.52).
northener вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из record в stringgrid roma88gruzd88 Общие вопросы Delphi 2 21.10.2013 00:49
Использование record в record Anton911 Общие вопросы Delphi 7 03.05.2012 08:49
Record! .K.E.P. Паскаль, Turbo Pascal, PascalABC.NET 1 17.12.2010 21:56
В чём различие записей Record от Packed Record? Terran Общие вопросы Delphi 7 08.06.2010 17:14
Record / Packed Record Alex Cones Общие вопросы Delphi 7 11.11.2009 10:43