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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2017, 22:14   #1
pavelmorash12
 
Регистрация: 17.04.2017
Сообщений: 6
По умолчанию процедура или функция записи файла

Помогите, пожалуйста. нет идей. Как сделать функцию, чтоб она записывала содержимое СГ в файл?
Код:
type sved=record 
name:string[30]; 
sg:string[15]; 
cena:integer; 
izg:string[30]; 
end;
var 
Form1: TForm1; 
f:file of sved; 
flname:string; 
product: array of sved; 
recofsved: sved; 
n,i:integer;
 
procedure TForm1.openClick(Sender: TObject); 
var i:integer; 
begin 
if OpenDialog1.Execute then 
Begin 
AssignFile(f,OpenDialog1.FileName); 
Reset(f); 
i:=0; 
SetLength(product, FileSize(F)); 
while not eof(f) do 
Begin 
Read(f, product[i]); 
stringgrid1.Cells[0,i+1]:=product[i].name; 
stringgrid1.Cells[1,i+1]:=product[i].sg; 
stringgrid1.Cells[2,i+1]:=inttostr(product[i].cena); 
stringgrid1.Cells[3,i+1]:=product[i].izg; 
i:=i+1; 
stringgrid1.RowCount:=stringgrid1.RowCount+1; 
end; 
CloseFile(f); 
SF.Hide; 
stringgrid1.RowCount:=stringgrid1.RowCount-1; 
end else exit; 
end;
 
procedure TForm1.saveClick(Sender: TObject); 
begin 
if not savedialog1.Execute then exit; 
flname:=savedialog1.FileName; 
assignfile(f,flname); 
try 
rewrite(f); 
except 
showmessage('ошибка создания файла '+flname); 
exit 
end; 
for i:= 0 to High(product) do 
begin 
Write(f, product[i]); 
end; 
closefile(f); 
end;

Последний раз редактировалось Аватар; 17.04.2017 в 22:20.
pavelmorash12 вне форума Ответить с цитированием
Старый 17.04.2017, 22:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

чем saveClick не устраивает?
Тем, что пишет в файл массив product ?
так это правильно.

Если у Вас в StringGrid разрешено редактирование и есть желание писать именно то, что в гриде, тогда нужно:
1) перебросить содержимое StringGrid -> в массив product
2) вызвать процедуру saveClick
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2017, 22:52   #3
pavelmorash12
 
Регистрация: 17.04.2017
Сообщений: 6
По умолчанию

я знаю, что это верно. через процедуру нужно записать файл.
pavelmorash12 вне форума Ответить с цитированием
Старый 18.04.2017, 10:09   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от pavelmorash12 Посмотреть сообщение
через процедуру нужно записать файл.
процедура saveClick записывает файл.
Что не устраивает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2017, 17:08   #5
pavelmorash12
 
Регистрация: 17.04.2017
Сообщений: 6
По умолчанию

вот так нужно, например
procedure shownumbers(n:integer);
var i:integer;
begin
for i:=1 to n do
showmessage(inttostr(i));
end;
pavelmorash12 вне форума Ответить с цитированием
Старый 18.04.2017, 17:36   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от pavelmorash12 Посмотреть сообщение
вот так нужно, например
procedure shownumbers(n:integer);
простите, я Вас не понимаю, поэтому ничем помочь не могу.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивная процедура или функция Homutova_Julia Общие вопросы Delphi 1 29.05.2011 00:57
Массив записей: процедура и/или функция alexalisa Паскаль, Turbo Pascal, PascalABC.NET 0 19.05.2011 23:20
Что лучше процедура или функция??? VintProg Общие вопросы Delphi 34 17.08.2010 15:52
Память, (что тяжелее:функция или процедура) WF7 Паскаль, Turbo Pascal, PascalABC.NET 4 08.06.2009 08:09
Процедура или функция, удаляющая окаймляющие пробелы в строке (Delphi) Аццкий прогер Помощь студентам 2 03.03.2009 04:12