Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Логирование процесcа копирования на Delphi (http://forum.oszone.net/showthread.php?t=215754)

OkSherd 16-09-2011 10:28 1754097

Логирование процесcа копирования на Delphi
 
Доброго времени суток.
Есть простейшая процедура копирования файла
Код:

....
CopyFile ('d:\1.txt','d:\2.txt',true);
....

Можно ли и какими методами результат этого процесса записать в лог файл?
В формате например: дата,время,имя файла, выполнено(не выполнено)

п.с. Либо это очень легко, либо очень сложно потому как ничего вразумительного при поиске не нашел.
Заранее всем откликнувшемся благодарен.

lxa85 16-09-2011 11:35 1754153

Цитата:

Цитата OkSherd
ожно ли и какими методами результат этого процесса записать в лог файл? »

Перед командой CopyFile дать команду записи в лог файл?

RostVY 16-09-2011 11:58 1754179

если много копифайлов, можно переопеределить CopyFile примерно так:

Код:

function CopyFile(f1,f2:pchar; fail_If_exist: boolean):boolean;
begin
//записать лог
...
//
// .. и скопировать
  result:=windows.copyFile(f1,f2,fail_If_exist);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  copyFile('c:\1.txt','d:\1.txt',true); //вызовется копифайл, опеределенный выше, а не стандартный
end;


OkSherd 19-09-2011 09:56 1755925

Цитата:

Цитата lxa85
Перед командой CopyFile дать команду записи в лог файл? »

Какую команду??? Есть ли какая нибудь функция или процедура логирования процесса копирования? Может я что то не понимаю или не правильно сформулировал вопрос. Для примера "нацарапал" батник
Код:

EHCO ON
SET DOWN=d:\
SET UP=c:\
FOR %%i IN (%UP%*.TXT) DO (
        COPY %%i %DOWN% && 1>>log.Log echo %date%; %time:~0,-3%; %%~fi; Скопировано || 1>>log.Log echo %date%; %time:~0,-3%; %%~fi; Неудача)

в результате получился вот такой лог файл
Код:

19.09.2011;  8:39:06; C:\1.txt; Скопировано
Неужели такое невозможно сделать на delphi?

opel431 24-09-2011 23:53 1759552

Цитата:

Цитата OkSherd
Неужели такое невозможно сделать на delphi? »

В кратце так.
1.Создай переменную типа TStringList при открытии формы (Str:=TStringList.Create).
2. И при выполнении действий (до, после, или получай из обработки ошибки) записуй в него нужную информацию - Str.Add('...').
3. При завершении программы сохрани Str.SaveToFile(Имя.log).
4. Освободи переменную (Str.Free).


Время: 09:47.

Время: 09:47.
© OSzone.net 2001-