![]() |
|
|
Регистрация | << Правила форума >> | 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 ![]() Пишу программы за еду. __________________ |
#7
|
||||
|
||||
![]() Подскажите пожалуйста:
1. Есть отсортированный динамический массив. 2. Есть типизованный файл в который этот массив записывается. 3. В середину массива добавляется значение, это же значение нужно добавить в файл(соответственно в середину). Как добавить запись в файл раздвинув остальные (уже существующие) записи? --- P.S.: Для каждого нового вопроса нужно новую тему создавать? По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |
#8
|
|||
|
|||
![]() Код:
Seek(F,nRec); либо вообще взять и перезаписать файл ![]() Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#9
|
||||
|
||||
![]() Код:
Seek(F,nRec); Можно перезаписывать файл... но как-то это... слишком просто и примитивно, должен же быть способ сделать пусть сложнее но эффективней (Да здравствует теория! ![]() По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |
#10
|
||||
|
||||
![]() Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#11
|
||||
|
||||
![]() Цитата:
Пишу программы за еду. __________________ |
#12
|
||||
|
||||
![]() Цитата:
|
#13
|
||||
|
||||
![]() Цитата:
![]() Цитата:
![]() Возможных вопросов стало -1 ![]() По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |