Текущий архив: 2008.04.27;
Скачать: CL | DM;
Вниз
Переполнение буфера? Найти похожие ветки
← →
deras © (2008-04-03 12:49) [0]Удаляю файлы, пути к которым прописаны в текстовом файле. Удаление идет в цикле "пока не закончиться список". Удяляются файли с помощью ф-ций (где-то нашел)
procedure CreateBuffer( Names : array of string; var P : TBuffer );
var I, J, L : Integer;
begin
for I := Low( Names ) to High( Names ) do
begin
L := Length( P );
SetLength( P, L + Length( Names[ I ] ) + 1 );
for J := 0 to Length( Names[ I ] ) - 1 do
P[ L + J ] := Names[ I, J + 1 ];
P[ L + J ] := #0;
end;
SetLength( P, Length( P ) + 1 );
P[ Length( P ) ] := #0;
end;
function TFMain._DeleteFiles( Handle : HWnd; Names : array of string; ToRecycle : Boolean ) : Integer;
var
SHFileOpStruct : TSHFileOpStruct;
Src : TBuffer;
begin
CreateBuffer( Names, Src );
with SHFileOpStruct do
begin
Wnd := Handle;
wFunc := FO_DELETE;
pFrom := Pointer( Src );
pTo := nil;
fFlags := FOF_NOCONFIRMATION; //на все запросы отвечает "yes to all"
if ToRecycle then fFlags := FOF_ALLOWUNDO;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Result := SHFileOperation( SHFileOpStruct );
Src := nil;
end;
Если количество удаляемых файлов невелико, то все ок. Но когда много - тогда выдает ошибку "Invalid pointer operation". Насколько я понимаю, происходит переполнение буфера из-за того, что начинается процес удаления многих файлов одновременно.
Как можно исправить ситуацию?
← →
Reindeer Moss Eater © (2008-04-03 12:53) [1]тогда выдает ошибку "Invalid pointer operation".
И где в нем хоть намек на "буфер" или "переполнение" ?
Мы говорим "ленин" - подразумеваем "партия" ?
← →
Kolan © (2008-04-03 12:54) [2]Обычный DeleteFile+TStringList чем не устроил?
← →
clickmaker © (2008-04-03 12:59) [3]а что такое TBuffer?
← →
deras © (2008-04-03 13:02) [4]был готовый код. Надо внести изменения.
Попробую с DeleteFile...
Спасибо
← →
Игорь Шевченко © (2008-04-03 13:42) [5]Что такое TBuffer ?
← →
Johnmen © (2008-04-03 14:04) [6]
> был готовый код. Надо внести изменения.
Т.е. чтобы за тебя ещё и изменения внесли в тупо стыренный код?
Страницы: 1 вся ветка
Текущий архив: 2008.04.27;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.026 c