Помощь - Поиск - Пользователи - Календарь
Полная версия: файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
-Alex-
Зачем существует деление файлов на тепизированные и нетипизированные, ведь по сути нетипизированные файлы болльшоц роли не игроют, а любоц файл можно открыть как типизированный (file of bite)????????????????????????? sad.gif
Altair
открыть-то можно.... но у тебя каждая компонента будет типизированна - byte,
а еслиты используешь нетипизированные файлы, ты можешь считывать любые структуры (разные) из файла, причем структуры любой сложности,
всего одним оператором...
то есть соль в том, что имею нетипизированный файл можно туда записывать данные имеющие разную структуру!


Вот тебе пример.
модуль для чтения и вывода BMP
такую структуру :

type
TPaletteEntry = record {тип п литры}
B,G,R:Byte;
Flags:Byte;
end;
TBitmapFileHeader = record
bfType :word;
bfsize :longint;
bfReserved1 :word;
bfReserved2 :word;
bfOffBits :longint;
biSize :longint;
biWidth,BiHeight :longint;
BiPlanes :word;
bibitCount :word;
biCompression :longint;
biSizeImage :longint;
biXPelsPerMeter, biYPelsPerMeter :Longint;
biClrUsed, biCLrImportant :longint;
end;

TpPalArray =array[0..255, red..BLUE] of byte;
var
F :FILE; { BMP file }
bfh :TBitMapFileHeader; {з головок ф йл }
Pal : array[0..256] of TPaletteEntry;

мы считываем всего одним оперератром.
BlockRead(f,BFH,SizeOf(BFH));

а потом совсем другую структуру, тоже одним оператором
BLOCKREAD(f,Pal,Palsize*4);

(палитра).
А теперь подумай что было бы если бы мы файл как байтвый открыли? читай-кавсе это ....
hiv
Если все писать через file of bite, то с его помощью удобно будет прочесть файл с записями такого типа?
type
Trec = record
name:string[15];
age:integer;
stock:double;
percent:real;
ID :Qword;
end;
VBproffi
Мне кажется, что более удобно пречесть файл с записями такого типа будет в случае

Цитата
...
type
 Trec = record
   name:string[15];
   age:integer;
   stock:double;
   percent:real;
   ID :Qword;
 end;
...
var
     TipeFile = TRec;



Цитата
    ID :Qword;

Это какой - то пользоватеьский тип данных - ты его не описал (числовой?)
Хотя без разницы, удобства при считывании файла в которм пресутствуют данные такого типа
Цитата
    name:string[15];

с помошью file of byte врядли будет успешным :no:


Вот будь файл file of string или просто Text, то считал бы всё без проблем, но как строку :yes:
volvo
VBproffi, читаем ответы внимательно !!!

Цитата(VBproffi @ 22.06.05 18:36)
с помошью file of byte врядли будет успешным :no:
Если это реакция на:
Цитата(hiv @ 22.06.05 13:07)
то с его помощью удобно будет прочесть файл с записями такого типа?
, то как видно выделенный мной символ остался незамеченным Вами... Это не было утверждением, это был вопрос...

Кстати, информация к размышлению:
Цитата(VBproffi @ 22.06.05 18:36)
при считывании файла в которм пресутствуют данные такого типа
name:string[15];
с помошью file of byte врядли будет успешным :no:

Правда? Тогда я подтверждаю, что с помощью File Of Byte можно совершенно спокойно прочесть и строку, и структуру, содержащую строку тоже. Есть возражения? С удовольствием выслушаю... ;)
VBproffi
Возражений - нет
Есть вопрос
Исходник бы, я честно был уверен в правоте sad.gif :D
volvo
Цитата(VBproffi @ 23.06.05 5:08)
Исходник бы, я честно был уверен в правоте

Исходник, говоришь? Ну, посмотри, как данные записываются, и как читаются. И попробуй найти отличия в прочитанном...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.