Пожалуйста, подскажите, как можно написать прогу, изменяющую порядок байтов в файле, так, что последний байт становится первым, и наоборот, причём программа должна работать с файлами разной длины
klem4
19.11.2006 19:12
Имеешь в виду поменять местами 1 и последнее значение в типизированном
File of Byte
или что ?
ps название темы поменяй, иначе придется закрыть.
Юта
19.11.2006 19:41
Цитата(klem4 @ 19.11.2006 15:12)
Имеешь в виду поменять местами 1 и последнее значение в типизированном
File of Byte
или что ?
ps название темы поменяй, иначе придется закрыть.
Нет, ну например, 12345 сделать 52341
klem4
19.11.2006 20:03
Файл у тебя как описан ? Text или file of byte ?
Юта
19.11.2006 20:17
Цитата(klem4 @ 19.11.2006 16:03)
Файл у тебя как описан ? Text или file of byte ?
По-совему усмотрению. И вообще, допускаются любые разумные ограничения, но их нужно указать
klem4
19.11.2006 20:59
Например так:
uses crt;
type TFile = File of Byte;
procedure CreateFile(fName: String; n: Integer); var f: TFile; i: Integer; begin Randomize; Assign(f, fName); Rewrite(f); for i := 1 to n do write(f, Random(256)); Close(f); end;
procedure Display(fName: String); var f: TFile; T: Byte; begin writeln; Assign(f, fName); Reset(f); while not eof (f) do begin read(f, T); writeln(T); end; Close(f); end;
procedure Restructure(fName: String); var f, f1: TFile; i: Integer; T: Byte; begin Assign(f, fName); Assign(f1, 'temp'); Reset(f); Rewrite(f1); for i := FileSize(f) - 1 downto 0 do begin Seek(f, i); read(f, T); write(f1, T); end; Close(f); Close(f1); Erase(f); Rename(f1, fName); end;