Главная страница
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.037 c
4-1097138441
Arnold
2004-10-07 12:40
2004.11.14
Вопрос по сообщениям


14-1098703870
vopros
2004-10-25 15:31
2004.11.14
Сегодня иду на Зенит-ЦСКА.Но немножко не посебе.


3-1097824876
nv
2004-10-15 11:21
2004.11.14
MIDAS - информация о клиенте.


1-1098619219
ali_t
2004-10-24 16:00
2004.11.14
аналог find in files из delphi


3-1097490239
JohnS
2004-10-11 14:23
2004.11.14
EhLib + сортировка