Показать сообщение отдельно
  #9  
Старый 25.11.2013, 15:53
kti kti вне форума
Прохожий
 
Регистрация: 21.11.2013
Сообщения: 10
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Во-первых нужно создавать объект не от переменной, а от класса (т.е. TFileStream.Create, а не FS.Create).

Да, это я неправильно написал. Решил проблему через следующую конструкцию:
Код:
  if FileExists(Param1 + Name_DB) then begin
        FS := TFileStream.Create(Param1 + Name_DB, fmOpenReadWrite);
      	FS.Seek(0, soFromEnd); // можно было FS.Position := FS.Size
    end
    else begin
        FS := TFileStream.Create(Param1 + Name_DB, fmCreate);
    end;

Цитата:
Если значение Size совпадает с Position - значит мы в конце файла.
здесь Position начинается с нуля? тогда наверно if TS.Position >= TS.Size-1 then ... файл кончился
Так?

Цитата:
а оказывается что их прочиталось меньше, из-за чего ReadBuffer вызовет исключение, что для нас будет означать что либо неверный формат файла или файл повреждён (недокачан).

вот я и хочу вставить проверку на битый файл, например кто-то взял и удалил последние пару байт

Цитата:
нужно вместо ReadBuffer использовать просто Read.

Понял, вот так и сделаю..
Еще раз спасибо
Ответить с цитированием