Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1207138466
dmdel
2008-04-02 16:14
2008.04.27
OleConteiner


2-1207112393
Armond
2008-04-02 08:59
2008.04.27
несколько запросов


2-1207290723
Gydvin
2008-04-04 10:32
2008.04.27
jpeg в цветовом пространстве CMYK


8-1176154110
sx1
2007-04-10 01:28
2008.04.27
MP3 писалка


8-1169580700
serko
2007-01-23 22:31
2008.04.27
Прибор через COM порт...