Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Вопрос про копированние


Автор: lider07 10.8.2003, 06:06

данный код копирут файлы и заменяет их (пез предупреждения)
вопрос: как сделать чтобы при копирование файл дописывался, допустим в первоночальном файле было значение 10 а вфайле который копировался 15 и в итоге надо чтобы содержимое этих файлов ссумировалось.

procedure ShellFileOperation(fromFile: string; toFile: string; Flags: Integer);
var
shellinfo: TSHFileOpStructA;
begin
with shellinfo do
begin
wnd := Application.Handle;
wFunc := Flags;
pFrom := PChar(fromFile);
pTo := PChar(toFile);
fFlags := FOF_NOCONFIRMATION;
end;
SHFileOperation(shellinfo);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
begin
ShellFileOperation('C:\Program Files\d\*.txt', '\\Cs_server\C', FO_COPY);
Form1.Timer1.Enabled:=true;

заранее СПАСИБО

Автор: Vit 10.8.2003, 07:12
http://forum.vingrad.ru/index.php?act=ST&f=32&t=1924

Автор: lider07 10.8.2003, 07:42
а пример можно - пожайлуста

Автор: 0FF 10.8.2003, 12:42
Нет lider07 через Шэл копировать не надо, да и вообще сним лучше не связывайся.

Код
Function FullDirectoryCopy(SourceDir, TargetDir:String; StopIfNotAllCopied, OverWriteFiles:Boolean):Boolean;
Var SR:TSearchRec;

function zCreateDir(const Dir: string): Boolean;
begin
  Result := Windows.CreateDirectory(PChar(Dir), nil);

end;

 Function LocalCopy:Boolean;
 begin
   Result := True;
   IF SR.Attr = faDirectory then
   begin
     IF (SR.NAME<>'.') and (SR.NAME<>'..') and (SR.NAME<>'') then
       Result := FullDirectoryCopy(SourceDir+SR.Name, TargetDir+SR.NAME, StopIfNotAllCopied, OverWriteFiles)
   end
   else
     IF not (not OverWriteFiles and FileExists(TargetDir+SR.Name)) then
       Result := CopyFile( Pchar(SourceDir+SR.Name), Pchar(TargetDir+SR.Name), False)
     else Result := True;
 end;

 Procedure CloseSR;
 begin
   try SysUtils.FindClose(SR) except end;
 end;

begin
 Result := False;
 SourceDir := IncludeTrailingBackslash (SourceDir);
 TargetDir := IncludeTrailingBackslash(TargetDir);

 if not FileOrDirExists(TargetDir) then
 IF not zCreateDir(TargetDir) then Exit;

//  IF not DirectoryExists(SourceDir) then Exit;
//  CloseSR;             ///

 IF FindFirst(ExcludeTrailingBackslash(SourceDir+'\*.*'), faDirectory, SR) = 0 then
 begin
   Result := LocalCopy;
   IF Not Result then
     IF StopIfNotAllCopied then begin CloseSR; Exit; end;
   while FindNext(SR) = 0 do
   begin
     Result := LocalCopy;
     IF Not Result then
       IF StopIfNotAllCopied then begin CloseSR; Exit; end;
   end;
   CloseSR;
 end;
 CloseSR;
end;


Автор: p0s0l 10.8.2003, 13:23
0FF - по-моему, lider07 хотел что-то другое...

lider07 я не совсем понял суть вопроса, можешь привести примерчик того, что тебе надо (до и после) ?

Автор: <Spawn> 10.8.2003, 13:30
p0s0l
Ему нужно, чтобы было так: открыть файл; прочитать значение, находящееся в нем; прибавить к этому значению другое; сохранить все в этом файле.

Автор: p0s0l 10.8.2003, 17:43
Файл состоит только из одного числа ?

Автор: 0FF 10.8.2003, 20:15
Цитата(p0s0l @ 10.8.2003, 13:23)
0FF - по-моему, lider07 хотел что-то другое...

Ops! Недочитал топик.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)