Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

копирование файлов   Найти похожие ветки 

 
vdddslep ©   (2004-10-29 15:03) [0]

написал прогу котороя должнеа себя копировать на диск с:\

использую поблочное копирование

// процедура копирования файлов поблочно

procedure FileCopy(oldname,newname:string);//;canvas:TCanvas);

var
 OldF,NewF:file;                      // старое и новое имя файла
 NumRead,NumWritten:Integer;         // читаем пишем
 Buf:array[1..2048] of Char;         //буффер

begin
   AssignFile(NewF, NewName);           { открываем файл куда будем копировать }
   Rewrite(NewF,1);                    { побайтово size = 1 }
   AssignFile(OldF, OldName);           { открываем файл который будем копировать }
   rewrite(oldf,1);                     { побайтово = 1 //важно}

//    Canvas.TextOut(10, 10, "Copying " + IntToStr(FileSize(FromF))+ " bytes...");

     repeat                                            // вход в цикл копирования
       BlockRead(OldF, Buf, SizeOf(Buf), NumRead);     {указател ,буфер, количества записей которое следует прочесть ,реально прочло байт}
       BlockWrite(NewF, Buf, NumRead, NumWritten);
     until (NumRead = 0) or (NumWritten <> NumRead);   // ok всё скопировано выходим из цикла

       CloseFile(OldF);                                 // закрываем оба файла
       CloseFile(NewF);
end;

получаю полный путь к запущенной программе

GetModuleFileName(hInstance, TheFileName, sizeof(TheFileName));

{дискриптор модуля запущенного файла, буфер для пути, максимальное количество извлекаемых символов}
  den2:=TheFileName;

вызываю функцию копирования и программ апишет ошибку что небожет открыть файл (запущенный )

что делать ????


 
Добрый дядька ©   (2004-10-29 15:11) [1]

Интересно, а зачем ты оба файла открываешь на запись?

PS.
Сразу же, предупреждая следующий вопрос, отвечу:
Перед Reset() добавь строчку  FileMode := 0;


 
vdddslep ©   (2004-10-29 15:18) [2]

Огромное спасибо

ура заработало примного благодарен
я 6 часов мучался немог понять в чем дело

а что это за волшебный такой
FileMode := 0;

что он делает ????


 
Добрый дядька ©   (2004-10-29 15:32) [3]

>vdddslep ©   (29.10.04 15:18)

На процедуре Reset нажми F1.
Далее по ссылкам найдешь FileMode и значения, которые эта переменная может принимать.
По умолчанию FilMode=2 (ReadWrite)

Режим FilMode=0 - файл открывается толтько для чтения.


 
vdddslep ©   (2004-10-29 16:17) [4]

ok еще раз спасибо



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.056 c
3-1098170390
mccop
2004-10-19 11:19
2004.11.14
Сделать содержимое ячейки DBGrid невидимым


4-1096918932
Viper
2004-10-04 23:42
2004.11.14
Управление с пульта


1-1098645916
CoolMan
2004-10-24 23:25
2004.11.14
Копирование n-ое кол-во файлов в один


14-1099058261
Егор
2004-10-29 17:57
2004.11.14
IP


1-1099387163
Ozone
2004-11-02 12:19
2004.11.14
Hint