Помощь - Поиск - Пользователи - Календарь
Полная версия: Нетипизированные файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Master Yoda
Есть проблема

Я хочу записать в нетипизированный файл, например, сначала один integer, потом много чаров (а потом считать). Что делаю неправильно?



var
fin, fout:file;
...
Begin
...
assign(fout, fname);
rewrite(fout, 1);
...
blockwrite(fout, some_integer, sizeof(some_integer));
for i:=1 to n do blockwrite(fout, some_char[i], sizeof(some_char[i]);
close(fout);
...
assign(fin, fname);
reset(fin, 1);
blockread(fin, some_integer, sizeof(some_integer));
for i:=1 to n do blockread(fin, some_char[i], sizeof(some_char[i]);
close(fin);

End.


При записи почти весь файл забивается nul'ами, и, соответственно, ничего ни читается. Зарание спасибо.
volvo
Странно... Все работает (если не заводить второй файл, а делать reset(fout, 1); первому, и читать из него же, разумеется)...

Кстати, у тебя в blockread/blockwrite не хватает скобки... Опечатка?
Lapp
Цитата(Master Yoda @ 26.11.2006 14:20) *

Что делаю неправильно?

Ну, ты забыл две скобки, поэтому прога не компилировалась.. smile.gif
Но в остальном все верно. И все работает.
Так что неправильно ты делаешь что-то в другом месте, думаю.
Вот текст проги, которую я создал по твоей:
const
n=10;
some_integer:integer=$1234;
some_char:array[1..n]of char=('q','w','e','r','t','y','u','i','o','p');
fname='th021.dat';

var
fin, fout:file;
i:integer;

Begin
assign(fout, fname);
rewrite(fout, 1);
blockwrite(fout, some_integer, sizeof(some_integer));
for i:=1 to n do blockwrite(fout, some_char[i], sizeof(some_char[i]));
close(fout);

assign(fin, fname);
reset(fin, 1);
blockread(fin, some_integer, sizeof(some_integer));
for i:=1 to n do blockread(fin, some_char[i], sizeof(some_char[i]));
close(fin);

WriteLn(some_integer);
WriteLn(some_char);
ReadLn
End.

А вот ее результат:
Цитата
Running "c:\home\home\ak\pas\th\th021_master_yoda\th021.exe "
4660
qwertyuiop

- все правильно! smile.gif
Я использовал FPC с опцией совместимости с TP7.
Хелп!!!!!
Кароч, ну пропустил одну лекцию, а теперь хватаюсь за голову... Нетипизированные файлы,
чё к чему хз:

Создать и заполнить файл f1 числами. Переписать из файла f1 в f2 только чётные числа....

Помогите, буду очень благодарен, заранее спасибо!
Lapp
Цитата(Хелп!!!!! @ 30.06.2011 19:04) *
Кароч, ну пропустил одну лекцию, а теперь хватаюсь за голову... Нетипизированные файлы,
чё к чему хз:

Создать и заполнить файл f1 числами. Переписать из файла f1 в f2 только чётные числа....

1. Зарегься и создай тему по правилам.
2. Напиши решение для типизированных файлов и показывай. Мы переделаем на нетипизированные.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.