Страница 1 из 1

Проблема с чтением/записью файла

Добавлено: 16 ноя 2006, 19:48
Колядин Максим
Помогите решить задачу! Дело такое:

Дан графический файл(картинка) "picture-1.dat". Нужно составить программу, которая создаст файл "picture-1.jpg" (поменяет расширение *.dat на *.jpg).+запросит новое имя файла.

Я составил так, но создаваемый файл ничего не отаброжает и его размер (0 байт).

Код: Выделить всё

Program convertor;
 Uses crt;
  const
  n=1234;
  kol=118;
 Var directory1,directory2: string;
f,f2: file;
allsize: longint;
buf: array [1..n] of byte;
 Begin
ClrScr;
Writeln('Введите директорию *.dat файла');
Read(directory1);
Writeln('Введите директорию *.jpg файла');
Read(directory2);
assign(f,directory1); reset(f);
assign(f2,directory2); rewrite(f2);
allsize:=filesize(f);
blockread(f,buf,allsize);
blockwrite(f2,buf,allsize);
close(f);
close(f2);
readkey;
end.



Как правильно?

Добавлено: 16 ноя 2006, 20:33
somewhere
reset(f);
Здесь открытие файла с длиной записи в 128 байт: Reset(F,1) и Rewrite(F2,1) исправит этот недочет.
К тому же Blockread явно забегает за буффер (где вы видели JPG максимум в 1234 байт).
Blockread читает в записях а не в байтах.

Добавлено: 16 ноя 2006, 23:17
Колядин Максим
Спасибо за ответ, конечно, но вы не могли бы оставить КОД правильно составленной программы. Ато я не пойму фразу " Blockread явно забегает за буффер (где вы видели JPG максимум в 1234 байт). Blockread читает в записях а не в байтах" непонял.
Или хотя бы объясните что это значит? Спасибо...

Добавлено: 17 ноя 2006, 00:25
Хыиуду
Если не критично время работы -
repeat
blockread(f,b,1);
blockwrite(f2,b,1);
until eof(f);
где b - переменная типа байт.

Добавлено: 17 ноя 2006, 00:41
Колядин Максим
ОГРОМНОЕ СПАСИБО Хыиуду! Сработало!!!

Re: Помогите решить простую задачу {СРОЧНО!}

Добавлено: 09 дек 2006, 15:17
CADE
А с файлами кто- нить дружит!!!