Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ShellExecute + copy command? (https://www.delphipraxis.net/161904-shellexecute-copy-command.html)

Jamah 26. Jul 2011 22:23

ShellExecute + copy command?
 
Hi Leute.
Ich brauch n Copy Command. Leider geht der CopyFile soweit ich weiß nicht, weil ich folgenden befehl (ms Console) benötige:
Code:
copy /b blub.txt bla.txt blub.txt
So. Das ist jetzt relativ doof, da ich keinen Delphi Befehl kenne, der das umsetzt. (/b bindet 2 oder mehr dateien zusammen, indem es ganz einfach ne datei erstellt mit:
Header1
Inhalt1
Ende1
Header2
Inhalt2
Ende2

USW.)

Ich hab versucht:

Delphi-Quellcode:
ShellExecute(Handle, 'open', 'copy', pWideChar(' /b '+Edit1.Text+' blub.txt '+SaveDialog1.FileName), pWideChar(Dir), sw_Normal);
Außerdem:

Delphi-Quellcode:
ShellExecute(Handle, 'copy', nil, pWideChar(' /b '+Edit1.Text+' blub.txt '+SaveDialog1.FileName), pWideChar(Dir), sw_Normal);
Und:

Delphi-Quellcode:
ShellExecute(Handle, 'copy', pWideChar(' /b '+Edit1.Text+' blub.txt '+SaveDialog1.FileName), Nil, pWideChar(Dir), sw_Normal);
Irgendwie bekomme ich immer Errorcode 2 (not found).
Kann mir einer aus diesem Dilemma helfen?
Danke

p80286 26. Jul 2011 22:37

AW: ShellExecute + copy command?
 
a) versuch es mit
Code:
copy d1 + d2 d3
b) überprüf mal ob es edit1.txt als Datei überhaupt gibt.

Gruß
K-H

jaenicke 26. Jul 2011 22:42

AW: ShellExecute + copy command?
 
Copy ist ein Befehl des Kommandozeileninterpreters, also der cmd.exe, daher lässt sich der nicht separat aufrufen. Du musst also die cmd.exe mit dem Parameter aufrufen.

Viel sinnvoller ist aber einfach TFileStreams zu benutzen und die Dateien selbst aneinanderzuhängen...

himitsu 26. Jul 2011 22:50

AW: ShellExecute + copy command?
 
Zitat:

Zitat von Jamah (Beitrag 1113711)
So. Das ist jetzt relativ doof, da ich keinen Delphi Befehl kenne, der das umsetzt. (/b bindet 2 oder mehr dateien zusammen, indem es ganz einfach ne datei erstellt mit:

Wetten hier kennen Viele mehere solcher Befehle?

AssignFile und Co.
Streams (z.B. TFileStream)
CreateFile und Co.
...

Mit all denen kann man Dateien auslesen und schreiben.
> mehrere Dateien einlesen und deren Daten in einer Datei abspeichern

Jamah 26. Jul 2011 23:06

AW: ShellExecute + copy command?
 
Ok....Nich gesehen, dass schon wieder gepostet wurde. Ich sehs mir nochmal an.

ventiseis 27. Jul 2011 06:45

AW: ShellExecute + copy command?
 
Alternativ kann man die CMD.EXE mit einem Schalter aufrufen:

Code:
cmd.exe /c copy Quelle Ziel
Das würde auch mit ShellExecute funktioneren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz