Announcement

Collapse
No announcement yet.

Möchte gerne eine Datei (*.exe) von A nach B kopieren.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Möchte gerne eine Datei (*.exe) von A nach B kopieren.

    Möchte gerne eine Datei (*.exe) von A nach B kopieren.

    Finde aber keine Funktion wie z.B. „FileCopy“ in Delphi 1.

    Hat jemand einen Tipp für mich?

    Shaw

  • #2
    Hi!<p>
    Am einfachsten geht es mit der CopyFile-API-Funktion:<p>
    <pre>BOOL CopyFile(
    LPCTSTR lpExistingFileName, // name of an existing file
    LPCTSTR lpNewFileName, // name of new file
    BOOL bFailIfExists // operation if file exists
    );</pre><p>
    Die Funktion müsste in der Windows-Unit deklariert sein (zumindestens ab Delphi 3.... ?!?).<p>
    Gruß,<br>
    Bernhar

    Comment


    • #3
      <html>

      <head>
      <meta http-equiv="Content-Type"
      content="text/html; charset=iso-8859-1">
      <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
      <title>Normale Seite ohne Titel</title>
      </head>

      <body bgcolor="#FFFFFF">

      <p>Delphi 1 ist meines Wissens 16bit. Da wird CopyFile nicht
      funktionieren. Ich hab in meinen 16bit Zeiten mit LZCopy
      gearbeitet, weiß aber nicht ob die Funktion unter Delphi
      existiert. Die einzubindende Unit könnte lzexpand.pas heißen.</p>

      <pre>OFSTRUCT ofStrSrc;
      OFSTRUCT ofStrDest;
      HFILE hfSrcFile, hfDstFile;
      hfSrcFile = LZOpenFile(Quelldatei, &amp;ofStrSrc, OF_READ);
      hfDstFile = LZOpenFile(Zieldatei, &amp;ofStrDest, OF_CREATE);
      ok=LZCopy(hfSrcFile, hfDstFile);
      LZClose(hfSrcFile);
      LZClose(hfDstFile);</pre>
      </body>
      </html&gt
      Günther

      Comment


      • #4
        Hallo,

        auf der CDROM zu meinem Buch <b>Delphi Win32-Lösungen</b> ist im Verzeichnis Bonus\Win16 ein Delphi 1-Projekt für ein eigenes Installationsprogramm zu finden. Dabei greife ich auch auf die API-Funktionen aus LZEXAND.DLL zurück, um unkomprimierte bzw. komprimierte Dateien auszupacken bzw. zu kopieren:
        <pre>
        procedure CopyFile(aSource, aTarget : PChar);
        begin
        StrCopy(pSourceFile, aSource);
        StrPCopy(pTargetFile, cTmpDir);
        StrCat(pTargetFile, aTarget);
        { Funktionen aus LZEXPAND.DLL aufrufen }
        iRet := LZStart;
        iSFile := LZOpenFile(pSourceFile, ReOpenBuf1, of_Read);
        if iSFile = -1 then MessageBox(hWindow, pSourceFile, cLZErr,
        mb_OK or mb_IconStop);
        iTFile := LZOpenFile(pTargetFile, ReOpenBuf2, of_Create);
        if iTFile = -1 then MessageBox(hWindow, pTargetFile, cLZErr,
        mb_OK or mb_IconStop);
        lRet := LZCopy(iSFile, iTFile);
        if lRet < 0 then MessageBox(hWindow, pTargetFile, 'LZCopy-Fehler',
        mb_OK or mb_IconStop);
        LZClose(iSFile);
        LZClose(iTFile);
        LZDone
        end;
        </pre>
        Die Unit <b>LZExpand.pas</b> ist auch in Delphi 1 vordeklariert

        Comment


        • #5
          Super... Danke für die Hilfe

          Sha

          Comment

          Working...
          X