LINUX.ORG.RU

История изменений

Исправление Napilnik, (текущая версия) :

Какой метод обхода? У меня баг вообще не воспроизводится, что я и продемонстрировал, могу ещё раз.

test echo " " > test1

А длину текстового файла кто смотреть будет? Твоя команда создаёт файл с длиной 0, а у меня файлы создавались в ФМ командой из локальной менюшки и длина их сразу была 2 байта. Ну и посмотрим, что в новосозданном текстовом файле:

Создаём в том же каталоге файл 1.pp с таким текстом

VAR
Fail: FILE;
Q5: STRING;
Q2: LONGINT;
BEGIN
ASSIGN(Fail,'Текстовый файл');
RESET(Fail,1);
Q2:=FILESIZE(Fail);
WRITELN('Длина этого файла ',Q2,' байт');
IF Q2>2 THEN Q2:=2;
BLOCKREAD(Fail,Q5[1],Q2);
WRITELN(ORD(Q5[1]));
WRITELN(ORD(Q5[2]));
CLOSE(Fail);
END.
И
$ fpc 1.pp -XX -CX
$ ./1
Длина этого файла 2 байт
32
10

Теперь почему-то только один текстовой файл потёрся, тот что «запускаемый». Но это всё равно не приемлемо, у меня же могут быть башевые скрипты в каталогах или напоминалки в имени файлов - может их я стирать не собираюсь.

Исходная версия Napilnik, :

Какой метод обхода? У меня баг вообще не воспроизводится, что я и продемонстрировал, могу ещё раз.

test echo " " > test1

А длину текстового файла кто смотреть будет? Твоя команда создаёт файл с длиной 0, а у меня файлы создавались в ФМ командой из локальной менюшки и длина их сразу была 2 байта. Ну и посмотрим, что в новосозданном текстовом файле:

Создаём в том же каталоге файл 1.pp с таким текстом

VAR
Fail: FILE;
Q5: STRING;
Q2: LONGINT;
BEGIN
ASSIGN(Fail,'Текстовый файл');
RESET(Fail,1);
Q2:=FILESIZE(Fail);
WRITELN('Длина этого файла ',Q2,' байт');
IF Q2>2 THEN Q2:=2;
BLOCKREAD(Fail,Q5[1],Q2);
WRITELN(ORD(Q5[1]));
WRITELN(ORD(Q5[2]));
CLOSE(Fail);
END.
И
$ fpc 1.pp -XX -CX
$ ./1
Длина этого файла 2 байт
32
10