ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1449
1449
EMPFEHLEN
-
Hallo
Ich weiss das Thema ist etwas merkwürdig, aber irgendwie wusste ich nicht, wie ich das Problem am besten benennen könnte.
Na egal. Hier erstmal der C++ Code:
Code :1 2 3 4 5 6 7 8 9
char * puffer; AnsiString Komplett; AnsiString NeuerOrdner = Edit1->Text + "_mit_Mod\\"; AnsiString Quellordner = Edit1->Text; Komplett = "XCOPY " +Quellordner+ " " + NeuerOrdner+ " /S"; ShowMessage(Komplett); puffer = Komplett.c_str(); ShowMessage(puffer); system(puffer);
Folgendes Problem ich möchte mit Hilfe einer Batch Anweisung einen Ordner in einen neuen Kopieren. Für die Ordnerpfade benutze ich den Typ AnsiString. Danach konvertiere ich den AnsiString in einen char * mit der Anweisung .c_str(). Anschließend führe ich die Batchanweisung aus mit system(...);
Wenn die Ordnernamen keine Leerzeichen enthalten, dann geht alles einwandfrei, aber sobald ein Leerzeichen enthalten ist geht die system(...); nicht richtig. Sie kann den Ordnernamen nicht finden.
Ich habe auch schon eine Prüfausgabe mit ShowMessage gemacht, die zeigt aber vor und nach der Konvertierung das selbe an, woraus ich schliesse, dass ich kein Fehler gemacht habe.
Das selbe Problem hatte ich auch schon mal mit der Funktion mcisendstring(); eine API Funktion zum mp3 abspielen usw.
Kann mir jemand bei meinem Problem helfen?
Ich hab schon Stundenlang rumprobiert, bin total verzweifelt.
-
09.10.07 14:43 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Das Problem liegt nicht an char* oder an AnsiString.
Du mußt den Befehl an die system() Funktion genau so übergeben wie du es auch in der Eingabeaufforderung machen würdest. Wenn der Pfad zum Programm Leerzeichen enthält mußt du den Pfad in Anführungszeichen setzen.
Code :1 2 3
c:\program files\foo.exe Der Befehl "c:\Program" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Code :1 2
"c:\program files\foo.exe" Hello, world
GrußCode c:1
AnsiString Quellordner = '"' + Edit1->Text '"';
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Aus mehreren Leerzeichen ein Leerzeichen machen
Von celloman im Forum JavaAntworten: 22Letzter Beitrag: 22.05.09, 16:12 -
unsigned char in wide char konvertieren
Von sand13r im Forum C/C++Antworten: 5Letzter Beitrag: 11.08.08, 19:14 -
char wert anderem char zuweisen (char* )
Von Dragon_Arch im Forum C/C++Antworten: 14Letzter Beitrag: 26.05.08, 20:52 -
Char Array nach char umwandeln
Von ProgFreak im Forum C/C++Antworten: 11Letzter Beitrag: 01.06.07, 02:00





Zitieren
Login






