![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Цитата:
![]() |
|
#5
|
||||
|
||||
|
Цитата:
Цитата:
Спасибо Цитата:
![]() |
|
#6
|
||||
|
||||
|
1. да, естественно "просто" TeamsArray[i]
2. "чушь" это сказано про категорический запрет использования глобальных переменных, не про ваш код 3. опять же, если принять во внимание категорический запрет использования глобальных переменных, стоит это реализовать отдельным классом, где массив TeamsArray будет свойством класса, а не глобальной переменной. но повторю - чушь это don't use global vars ![]() |