Помощь - Поиск - Пользователи - Календарь
Полная версия: файлы
Форум «Всё о Паскале» > 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)
Исходник бы, я честно был уверен в правоте

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