![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Есть динамический двухмерный массив, его надо записать и счтитать с типизированного файла.
Запись: Код:
procedure Save2DArray(FileName:String); var F:file of String[6]; I,J,num:Integer; begin Assignfile(F,FileName); Rewrite(F); Seek(F,0); for I := 0 to High(TAr) do begin for J := 0 to High(TAr) do begin Write(F,TbArray[i, j]); end; end; CloseFile(F); end; Код:
procedure Load2DArray(FileName:String); var F:File of String[6]; I,J:Integer; begin Assignfile(F,FileName); Rewrite(F); Seek(F,0); for I := 0 to High(TAr) do begin for J := 0 to High(TAr) do begin Read(F, TbArray[i,j]); // Здесь не компилируется - пишет несовместимость типов. Хотя TbArray[i,j]:String[6]; тоже. end; end; CloseFile(F); end; По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |
#2
|
||||
|
||||
![]() TbArray что из себя представляет?
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
||||
|
||||
![]() Код:
TbArray:array of array of string[6]; По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |
#4
|
||||
|
||||
![]() TbArray это TAr? Тогда в процедурах Write(F,TAr[i, j]) и Read(F, TAr[i,j]) наверное надо обозвать.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
||||
|
||||
![]() обявление в форм1:
Код:
type TKom = record FEmblem: string[50]; FTeam: string[30]; end; TKomFile = file of TKom; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure btn3Click(Sender: TObject); private { Private declarations } public { Public declarations } TAr:array of TKom; TbArray:array of array of string[6]; end; В другой форме создается табличка (длина(TAr)+1(фиксированные строки), длина(TAr)+1(фиксированные столбцы)). Данные с нее должны записываться в типизированный файл. И при необходимости считываться. Делаю отдельный юнит для процедур. Прописала считывание- запись, но не работает. ![]() По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |
#6
|
||||
|
||||
![]() Я в прошлом коде не прописала Form1.TAr и Form1.TbArray, что бы не путать.
По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |
#7
|
|||
|
|||
![]() Цитата:
перед чтением(load) файл первым делом полностью очищается, размер массива в save не записывается, в load не читается и не устанавливается >woweook< |
#8
|
||||
|
||||
![]() А что если в var объявить просто F:File of String;, хуже не будет (строки в массиве и так уже ограничены)
З.Ы. Угу, пропустил ключевую фразу "Типизированный файл" мимо ушей, и только дошло, что String в "чистом виде" в них использовать нельзя, каюсь. Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 26.11.2012 в 14:45. |
#9
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Edinora (26.11.2012)
|
#10
|
||||
|
||||
![]() Извините за назойливость, а вот так работать случайно не будет?
Код:
procedure Save2DArray(FileName: String); var F: file of String[6]; tmp: string[6]; I, J, num: Integer; begin Assignfile(F, FileName); Rewrite(F); Seek(F, 0); for I := 0 to High(TAr) do for J := 0 to High(TAr) do begin tmp:= TbArray[i, j]; Write(F, tmp); end; CloseFile(F); end; procedure Load2DArray(FileName:String); var F: File of String[6]; tmp: string[6]; I, J: Integer; begin if FileExists(FileName) then begin Assignfile(F, FileName); Reset(F); for I:= 0 to High(TAr) do for J:= 0 to High(TAr) do begin Read(F, tmp); TbArray[i, j]:= tmp; end; CloseFile(F); end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Edinora (26.11.2012)
|
#11
|
|||
|
|||
![]() тоже нечем проверить, без дельфи видно что дин.массив не сохраняет размерности
Цитата:
>woweook< |
#12
|
||||
|
||||
![]() Ну, вообще-то для типизированного файла нужно создавать отдельный тип, а не записывать "строку, ограниченную по длине". Тоесть, там где, например, описано
Цитата:
Код:
string[6] Код:
TString6=string[6]; Код:
TbArray:array of array of TString6; |
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
Edinora (26.11.2012)
|
#13
|
||||
|
||||
![]() Цитата:
Цитата:
Цитата:
По переживать и по сокрушаться - я всегда успею. Так что, дайте мне порадоваться в свое удовольствие! |