Текущий архив: 2008.06.15;
Скачать: CL | DM;
Вниз
Truncate и TFileStream Найти похожие ветки
← →
Nucer (2008-05-19 22:53) [0]Как так же быстро обрезать файл через TFileStream как это делает функция Truncate?
← →
{RASkov} © (2008-05-19 23:08) [1]> [0] Nucer (19.05.08 22:53)
Помоему просто выставить новый Size достаточно.... Это если хвост обрезать...
← →
Anatoly Podgoretsky © (2008-05-19 23:15) [2]> {RASkov} (19.05.2008 23:08:01) [1]
Из справки
Call SetSize to set the size of the resource. SetSize calls Seek to go to the indicated position, and then writes an end of file marker. If the size of the resource can not be changed, an exception is raised. For example, calling SetSize for a file handle that was opened in fmOpenRead mode will raise an exception.
← →
Nucer (2008-05-20 10:28) [3]В classes у TStream:
property Size: Int64 read GetSize write SetSize64;
procedure TStream.SetSize(NewSize: Longint);
begin
// default = do nothing (read-only streams, etc)
// descendents should implement this method to call the Int64 sibling
end;
procedure TStream.SetSize64(const NewSize: Int64);
begin
SetSize(NewSize);
end;
procedure TStream.SetSize(const NewSize: Int64);
begin
{ For compatibility with old stream implementations, this new 64 bit SetSize
calls the old 32 bit SetSize. Descendent classes that override this
64 bit SetSize MUST NOT call inherited. Descendent classes that implement
64 bit SetSize should reimplement their 32 bit SetSize to call their 64 bit
version.}
if (NewSize < Low(Longint)) or (NewSize > High(Longint)) then
raise ERangeError.CreateRes(@SRangeError);
SetSize(Longint(NewSize));
end;
Получается такой вариант не работает?
← →
Nucer (2008-05-20 10:55) [4]Хотя работает... но КАК - для меня остается загадкой
← →
palva © (2008-05-20 10:59) [5]Nucer (20.05.08 10:28) [3]
Сначала вы спрашивали про TFileStream, а теперь почему-то перешли на TStream.
Вы лучше сначала попробуйте, а потом говорите, что не работает.
← →
ЮЮ © (2008-05-20 11:00) [6]> В classes у TStream:
> Получается такой вариант не работает?
> Хотя работает… но КАК — для меня остается загадкой
Смотреть, наверное, следует у TFileStream
← →
palva © (2008-05-20 11:01) [7]
> Хотя работает... но КАК - для меня остается загадкой
>
Выхода два. Либо сами учите английский либо платите деньги переводчику.
← →
Nucer (2008-05-20 11:13) [8]Прошу прощения, это delphi привело к методу TStream, когда я щелкнул по Size с зажатыми CTRL и ALT, хотя должно было привести к THandleStream.SetSize.
← →
Palladin © (2008-05-20 11:23) [9]
> хотя должно было привести к THandleStream.SetSize
с чего ты взял?
← →
Nucer (2008-05-20 11:31) [10]Потому что TFileStream потомок THandleStream и наследует его переопределенный метод SetSize.
← →
Palladin © (2008-05-20 11:34) [11]
> Nucer (20.05.08 11:31) [10]
а с чего ты взял, что щелкнув на свойстве Size, ты вдруг в мнгновение ока полетишь на SetSize ? откуда среде знать, что тебе нужно от свойства Size, его метод/поле Read или его метод/поле Write ?
← →
Nucer (2008-05-20 11:41) [12]Согласен, что среда показала то, что смогла показать, но если продолжить демагогию...
В коде:sr.Size:=vers[i].size
Навожу на sr.Size. Логично предположить, что мне нужен Write? =)
← →
Palladin © (2008-05-20 11:44) [13]среда - не является компилятором и на то что происходит в коде ей глубоко монопенисуально...
Страницы: 1 вся ветка
Текущий архив: 2008.06.15;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.014 c