Текущий архив: 2003.06.16;
Скачать: CL | DM;
ВнизПомогите разобраться с типизиров. и нетипизир. файлами Найти похожие ветки
← →
AbrosimovA (2003-06-04 14:27) [0]До сих пор не въезжаю, какие файлы являются типизированными, а какие - нетипизированные. Ведь к каждому виду файла применим свой подход при чтении. А пока я с этим не разберусь, не смогу читать файлы. Приведу несколько примеров записей файлов, например:
Первый файл(Одна запись)
type TVFile = record
R: array[1..N] of real48;
B: array[1..N] of byte;
end;
Второй файл(Одна запись)
type TCFile = record
P : pointer;
S : string[10];
W : word;
B : byte;
R1 : real48;
R2 : real48;
R3 : real48;
R4 : real48;
I1 : integer;
I2 : integer;
end;
Третий файл(Две записи)
type TH = record
L1 : longint;
W1 : word;
L2 : longint;
W2 : word;
L3 : longint;
L3 : longint;
S : array[1..60] of string[10];
end;
type TV = record
L : longint;
R : array[1..60] of real48;
end;
Так какие-же из этих файлов типизированные, а какие нет?
Есть ли у кого-нибудь примеры работы с типизиров. и нетипизир. файлами?
← →
Skier (2003-06-04 14:31) [1]И где же тут файлы ?
← →
Palladin (2003-06-04 14:31) [2]:)) а где тут файлы то? :)
записи вижу :) файлы не вижу :)
ну почему книги не читаем по паскалю то?
var
f:file; // не типизированый файл
f:file of TVFile; // типизированый
← →
AbrosimovA (2003-06-04 15:14) [3]Если поточнее сформулировать, то я привел структуру записей реальных файлов.
> var
> f:file; // не типизированый файл
> f:file of TVFile; // типизированый
Из этого я могу сделать вывод, что один и тот-же файл я могу считать типизированным или нетипизированным в зависимости от моего настроения. А из структуры этого нельзя сделать?
← →
Palladin (2003-06-04 15:18) [4]типизированый и не типизированый файлы это понятие на уровне программирования, любой файл есть битовый набор...
> А из структуры этого нельзя сделать?
что ты имеешь в виду?
← →
gek (2003-06-04 15:19) [5]
> Из этого я могу сделать вывод, что один и тот-же файл я
> могу считать типизированным или нетипизированным в зависимости
> от моего настроения
Нет
нетипизированый файл назван именно так потому, что...
(А вот догадайся с одного раза)
← →
AbrosimovA (2003-06-04 15:31) [6]Разве это форум, это "угадайка сам". Если бы мне удалось самому дойти до познания, я б не обращался за помощью.
← →
Sandman25 (2003-06-04 15:33) [7]Вам уже ответили. Palladin © (04.06.03 14:31)
← →
AbrosimovA (2003-06-04 15:45) [8]Я так понимаю, для того чтобы в своей программе написать файловую переменную вида
var f:file; // не типизированый файл
илиvar f:file of TVFile; // типизированый
, мне нужно проанализировать что-то, известное об этом файле(структуру записи,текст в Hex-редакторе и т.д.). В любом деле главное - начать, но я не знаю даже с чего начать(книг по Паскалю у меня нет).
← →
Skier (2003-06-04 15:46) [9]
> что один и тот-же файл я могу считать типизированным или
> нетипизированным в зависимости от моего настроения.
В зависимости от того как он объявлен у тебя программе.
Если бы всё работало в зависимости от настроения, то быть бы
атомной войне...
← →
Sandman25 (2003-06-04 15:50) [10]Все зависит от того, как Вы собираетесь с файлом работать.
Если
Read(f, MyRec); то надо объявлять файл типизированным var f:file of TMyRec;
а если через Blockread, то можно объявить файл и нетипизированным.
← →
Palladin (2003-06-04 15:55) [11]
> книг по Паскалю у меня нет
рекомендую пойти и купить в ближайшем магазине...
← →
KSergey (2003-06-04 16:00) [12]Добавлю еще от себя высказанные мысли: собственно в файле не записывается типизированный он или нет. Все зависит от того каким вы его хотите видеть. Самому файлу по барабану, он об этом даже не догадывается. Впрочем, всем остальным - тоже.
← →
AbrosimovA (2003-06-04 16:09) [13]
> Sandman25 © (04.06.03 15:50)
Решение работать с файлами, например, как с типизированными
(var f:file of TMyRec;
), ведь не просто так приходит. Этому должны быть какие-то предпосылки и умозаключения.
← →
Skier (2003-06-04 16:12) [14]
> Этому должны быть какие-то предпосылки и умозаключения.
>
Программирование (да и не только оно) вообще основывается на умозаключениях :)
← →
Sandman25 (2003-06-04 16:17) [15]Если у Вас в файл записано всего лишь 5 записей, то используйте file of TMyRec.
Если у Вас там 50.000 записей, то лучше использовать file.
Если у Вас там, кроме этих записей, есть и еще записи другого формата (скажем TMyOtherRec), то у Вас нет выбора, кроме как использовать file.
← →
AbrosimovA (2003-06-04 16:18) [16]Так значит пофиг всё, что я привел в самом начале? Объявляй файл типизированным(или нетипизированным) и пытайся его прочитать?
Какой-же способ предпочтительнее?
← →
Palladin (2003-06-04 16:21) [17]
> AbrosimovA (04.06.03 16:09)
был тут один мегавольт, тоже спрашивал как ему понять когда ему применять SetLength...
ну головой думайте, да. никто же за вас не будет решать где и как прописать какойнибудь оператор или какую же завести переменную...
ну хочешь ты рассматривать файл как пары двух чисел integer ну и рассматривай
type
TDoubleInteger=record
num1,num2:integer;
end;
var
f:file of TDoubleInteger;
dbv:TDoubleInteger;
assignfile(f,"c:\myfile.dbl");reset(f);
read(f,dbv);
closefile(f);
а хочешь рассматривать как некая последовательность кусков неструктурной информации определенного размера дык рассматривай
var
f:file;
buf:array [0..511] of byte;
можно так
assignfile(f,"c:\bytearray.dat");reset(f,1);
blockread(f,buf,sizeof(buf));
closefile(f);
можно так
assignfile(f,"c:\bytearray.dat");reset(f,sizeof(buf));
blockread(f,buf,1);
closefile(f);
все зависит от тебя! пойми ты это! как тебе надо так и используй файлы...
← →
AbrosimovA (2003-06-04 16:28) [18]Спасибо всем за полемику. Было полезно пообщаться.
← →
Vulko (2003-06-04 16:32) [19]
> собственно в файле не записывается типизированный он или
> нет
Зато если его просмотреть (или погой прочитать), то тут уж от правды не убежать...
Страницы: 1 вся ветка
Текущий архив: 2003.06.16;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.005 c