Softwareentwicklung mit Delphi

Softwareentwicklung mit Delphi

Posts 1-3 of 3
  • Markus Lemcke
    Markus Lemcke    Premium Member   Group moderator
    The company name is only visible to registered members.
    Dateien kopieren mit Delphi 1
    Hallo,

    ich habe folgende kopierroutine aus dem web:
    function CopyFile( src, dest: String): Boolean;
    var s, d: TOFStruct;
    fs, fd: Integer;
    fnSrc, fnDest: PChar;
    begin
    src:=src + #0;
    dest:=dest + #0; { Trick, um aus einem String ein ASCIIZ zu machen:}
    fnSrc:=@src[1];
    fnDest:=@dest[1];
    fs := LZOpenFile( fnSrc, s, OF_READ );
    fd := LZOpenFile( fnDest, d, OF_CREATE );
    if LZCopy( fs, fd ) < 0
    then Result:=False
    else Result:=True;
    { Dateien schliessen}
    LZClose( fs );
    LZClose( fd );
    end;

    aber irgendwie funzt die nicht!
    habe die Pfade mi showmesse anzeigen lassen, die stimmen.
    ich möchte praktisch eine datei im selben verzeichnis kopieren und die kopie soll einen anderen Namen haben wie das original!

    wer weiss ne zuverlässige kopierroutine!

    Herzliche Grüße


    Markus
  • User photo
    Andreas Grotz
    (not a XING member)
    Re: Dateien kopieren mit Delphi 1
    Viele wege führen nach Portugal ...

    mhm bei Delphi 1 bin ich mir auch nicht sicher was es an funktionsumfang gibt ...
    evtl. TFileStream ?

    Procedure TBackupForm.FileCopy( Const sourcefilename, targetfilename: String );
    Var
    S, T: TFileStream;
    Begin
    S := TFileStream.Create( sourcefilename, fmOpenRead );
    try
    T := TFileStream.Create( targetfilename,
    fmOpenWrite or fmCreate );
    try
    T.CopyFrom(S, S.Size ) ;
    finally
    T.Free;
    end;
    finally
    S.Free;
    end;
    End;


    Was aber aufjedenfall gehen sollte wäre BlockRead/BlockWrite ...
    var sz:word;
    p:pointer;
    f,o:file;

    sz:=$ffff;
    AssignFile(f,sourcefn);
    reset(f,1);
    Assignfile(o,targetfn);
    rewrite(o,1);
    getmem(p,sz);
    repeat
    blockread(f,p^,sz,nr); // bin mir was die parameter folge angeht nicht ganz sicher
    if nr > 0 then blockwrite(o,p^,nr);
    until nr = 0;
    freemem(p,sz);
    closefile(f);
    closefile(o);
  • Markus Lemcke
    Markus Lemcke    Premium Member   Group moderator
    The company name is only visible to registered members.
    Re^2: Dateien kopieren mit Delphi 1
    tach du fleißiger schreiber!

    es lag nicht an der kopierroutine, sondern an den langen datei-und verzeichnisnamen :)
    habe lange gebraucht, bis ich dahinter gestiegen bin, aber jetzt tut es und vorerst darf ich jetzt kein Delphi mehr entwickeln :)

    Herzliche Grüße


    Markus