Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 11.06.2018, 04:15   #1
voolf
Новичок
 
Регистрация: 10.06.2018
Сообщений: 4
Репутация: 10
По умолчанию данные из 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 в 04:18.
voolf вне форума   Ответить с цитированием
Старый 11.06.2018, 11:05   #2
digitalis
Участник клуба
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 964
Репутация: 365
По умолчанию

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

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

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

спасибо за помощь, даже рештл
Цитата:
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 ('Çàïèñ&#2 24;íî');

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 ('Ïðî÷è&#2 42;àíî');
end;
ждите, еще тупые вопросы будут
voolf вне форума   Ответить с цитированием
Старый 12.06.2018, 02:24   #5
northener
Профессионал
 
Регистрация: 15.07.2013
Сообщений: 1,449
Репутация: 477
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


19:38.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru