![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() У меня вопрос к старожилам.
Есть мелкая программка с несколькими формами. В каждой форме фигурируют данные с файла, для удобства записанные в массив TeamsArray. С массива они распределяются по табличках этих формах. (Это в идеале). Теперь сам вопрос: Код:
type TPerson = record FTeam: string[130]; FCity: string[50]; FYearOfFoundation: Integer; end; TeamFile = file of Team; var Form1: TForm1; TeamsArray:array[1..100] of TPerson; ImageTeamsArray:array[1..100] of string; Как то меня не радует в каждой из форм считывать данные с файла, записывать в локальный массив, работать с ним, а потом опять записывать в файл. ![]() Есть ли другой, более простой, способ справиться с данной проблемой? |
#2
|
||||
|
||||
![]() TeamsArray и так доступен всем модулям.
добавлено позже а если глобальные переменные вне закона (чушь, конечно): Код:
type TPerson = record FTeam: string[130]; FCity: string[50]; FYearOfFoundation: Integer; end; TForm1 = class(TForm) private { Private declarations } public { Public declarations } TeamsArray:array[1..100] of TPerson; end; Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 12.11.2012 в 15:30. |
#3
|
|||
|
|||
![]() Вообще говоря, пишется юнит
Код:
unit UnitTeams; interface type TPerson = record FTeam: string[130]; FCity: string[50]; FYearOfFoundation: Integer; end; var TeamsArray:array[1..100] of TPerson; TeamsCount:Integer=0; procedure ReadTeams(FileName:String); procedure WriteTeams(FileName:String); implementation procedure ReadTeams(FileName:String); var T:File of TPerson; I:Integer; begin Assignfile(F,FileName); TeamsCount:=0; {$-} Reset(F); If IoResult <> 0 then Exit; I:=FileSize(F); // if I>100 then ???? TeamsCount:=I; for I:=1 to TeamsCount do begin Read(F,TeamsArray[i]); end; CloseFile(F); {$+} end; procedure WriteTeams(FileName:String); var T:File of TPerson; I:Integer; begin Assignfile(F,FileName); Rewrite(F); Seek(F,0); for I:=1 to TeamsCount do begin Write(F,TeamsArray[i]); end; CloseFile(F); end; end. |
#4
|
||||
|
||||
![]() Цитата:
![]() jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
![]() Цитата:
![]() Цитата:
Спасибо ![]() Цитата:
![]() |
#6
|
||||
|
||||
![]() 1. да, естественно "просто" TeamsArray[i]
2. "чушь" это сказано про категорический запрет использования глобальных переменных, не про ваш код 3. опять же, если принять во внимание категорический запрет использования глобальных переменных, стоит это реализовать отдельным классом, где массив TeamsArray будет свойством класса, а не глобальной переменной. но повторю - чушь это don't use global vars ![]() Пишу программы за еду. __________________ |