Форум: "Основная";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
ВнизStream.Seek Stream.Position возвращает ноль. Найти похожие ветки
← →
rioko (2012-08-02 10:54) [0]
FromF := TFileStream.Create(pp + "UserData\" + BaseName + "DB.db", fmOpenRead);
Application.ProcessMessages();
try
ToF := TFileStream.Create(DirToRepack + "\" + FileName, fmCreate);
end;
try
FromF.Seek(BeginByte, soFromBeginning);
ShowMessage("Seek(BeginByte \ "+inttostr(FromF.Position) +" \ "+inttostr(BeginByte));
Application.ProcessMessages();
ToF.CopyFrom(FromF, RecFileSize);
finally
ToF.Free;
end;
finally
FromF.Free;
end;
Так вот, все прекрасно работает если файл менее полутора гигабайт, а когда больше то после выполнения Seek при проверкеShowMessage("Seek(BeginByte \ "+inttostr(FromF.Position) +" \ "+inttostr(BeginByte));
показывает что позиция ноль.
Что делать? Записывается то нормально а вот как прочесть данные и почему сик не работает если там int64 и длины хватает в любом случае?
← →
Cobalt © (2012-08-02 15:36) [1]Удалено модератором
Примечание: создание пустых сообщений
← →
Rouse_ © (2012-08-02 18:59) [2]Вместо Seek используй свойство Position
← →
rioko (2012-08-02 19:42) [3]Rouse_
Спасибо большое :)
← →
DVM © (2012-08-03 22:47) [4]
> rioko (02.08.12 10:54)
> и почему сик не работает если там int64 и длины хватает
> в любом случае?
Работает он, но там есть два перегруженных метода Seek принимающие разные типы второго параметра.
← →
Palladin © (2012-08-04 01:39) [5])
function TStream.GetPosition: Int64;
begin
Result := Seek(0, soCurrent);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.052 c