![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 43
|
![]()
procedure TUniver.OpenClick(Sender: TObject);
var f1:TFFacultet; f2:TFKafedra; f3:TFGroup; f4:TFStudent; p2,p3,p4:integer; Name:string; r1:TRecFacultet; r2:TRecKafedra; r3:TRecGroup; r4:TRecStudent; pp1,fp1:TPFacultet; pp2,fp2:TPKafedra; pp3,fp3:TPGroup; ok:boolean; begin if OpenDialog1.Execute then begin if start<>nil then DelSpis1(start); Name:=OpenDialog1.FileName; AssignFile(f1, Name); Reset(f1); AssignFile(f2, Name+'kaf'); Reset(f2); AssignFile(f3, Name+'gro'); Reset(f3); AssignFile(f4, Name+'stu'); Reset(f4); while not EOF(f1) do begin Read(f1,r1); r1.f_sub:=nil; AddToList1(start,r1); FindEl1(start, r1.f_nazv2, pp1,fp1, ok); for p2:=1 to fp1^.f_file do begin Read(f2, r2); r2.k_sub:=nil; AddToList2(fp1^.f_sub, r2); FindEl2(fp1^.f_sub, r2.k_nazv1, pp2,fp2, ok); for p3:=1 to r2.k_file do begin Read(f3, r3); r3.g_sub:=nil; AddToList3(fp2^.k_sub, r3); FindEl3(fp2^.k_sub, r3.g_nazv, pp3,fp3, ok); for p4:=1 to r3.g_file do begin Read(f4, r4); AddToList4(fp3^.g_sub,r4); end; end; end; end; CloseFile(f4); CloseFile(f3); CloseFile(f2); CloseFile(f1); end; ShowInLB1(start, LB1); end; мой код процедуры открытия файла (сохранение работает хорошо) а вот открытие прерывается в строке Read(f2, r2); (ошибка Read beyond end of file) кому не сложно, очень прошу объяснить в чем дело (курсовой, очень срочно) спасибо. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 43
|
![]()
procedure TUniver.SaveAsClick(Sender: TObject);
var Name:string; f1:TFFacultet; f2:TFKafedra; f3:TFGroup; f4:TFStudent; FTek:TPFacultet; KTek:TPKafedra; GTek:TPGroup; STek:TPStudent; p2,p3,p4:integer; begin if SaveDialog1.Execute then begin Name := SaveDialog1.FileName; AssignFile(f1, Name); Rewrite(f1); AssignFile(f2, Name+'kaf'); Rewrite(f2); AssignFile(f3, Name+'gro'); Rewrite(f3); AssignFile(f4, Name+'stu'); Rewrite(f4); FTek:=start; p2:=0; p3:=0; p4:=0; while FTek<>nil do begin KTek:=FTek^.f_sub; p2:=0; p3:=0; p4:=0; while KTek<>nil do begin GTek:=KTek^.k_sub; p3:=0; p4:=0; while GTek<>nil do begin STek:=GTek^.g_sub; p4:=0; while STek<>nil do begin write(f4, STek^); p4:=p4+1; STek:=STek^.s_next; end; GTek^.g_file:=p4; write(f3, GTek^); GTek:=GTek^.g_next; p3:=p3+1; end; KTek^.k_file:=p3; write(f2, KTek^); KTek:=KTek^.k_next; p2:=p2+1; end; FTek^.f_file:=p2; write(f1, FTek^); FTek:=FTek^.f_next; end; CloseFile(f4); CloseFile(f3); CloseFile(f2); CloseFile(f1); end; end; это моя проц-ра сохранения в файл. с ней вроде все в порядке... или я не прав? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сохранение и открытие | Malyava | Помощь студентам | 1 | 11.03.2011 12:07 |
Открытие и сохранение файлов в Delphi | darth Mark | Помощь студентам | 8 | 10.05.2010 13:10 |
Открытие/сохранение файла | НеВа6464 | Microsoft Office Excel | 4 | 01.06.2009 14:06 |
Сохранение и открытие в бд | MargoNik | БД в Delphi | 20 | 27.04.2009 15:43 |
Сохранение и открытие файлов | Kantor | Общие вопросы Delphi | 1 | 15.12.2008 05:21 |