Pfadangaben - Anführungszeichen - Leerzeichenproblem
-
Hallo Leute,
ich bin grad erst in c++ eingestiegen und auf ein Problem gestoßen...arbeite an einem veralteten Programm (was ich nicht selbst programmiert habe)
Ich arbeite mit dem Borland C++ Builder 6.0...und zwar übergeb ich einen Programm 3 Pfadangaben:
Pfad[0] = "d:\temp\01\01.txt"
Pfad[1] = "d:\temp\02\01.txt"
temp = "d:\temp\03\01.txt"und speicher sie in einem Array... wenn die Pfadangaben ein Leerzeichen beinhalten, funktioniert es bisdahin auch die pfade wären dann:
Pfad[0] = "d:\temp leer\01\01.txt"
Pfad[1] = "d:\temp leer\02\01.txt"
temp = "d:\temp leer\03\01.txt"Nun scheitert es an folgender Zeile:
sprintf(Buffer,"%d 0 EXTRACT %s %s %s %d",Nr,pfad[0],pfad[1],temp,flag);bei den pfadangaben ohne leerzeichen funktioniert es aber mit leerzeichen nicht.
Wie kann ich das handlen ? wäre für jede Hilfe dankbar !Ich hoffe ihr versteh mein Problem!
Viele Grüße,
Thurstan
-
Hallo
Das hat nichts mit C++ zu tun, dort nimmt man std::stringstream und std::string.
Und auch das wird dir nicht helfen, denn ich vermute du bastelst eine Befehlszeile für die Kommandozeile zusammen. Dann solltest du aber die Pfadangaben in Doppelte Hochkommas setzen, dann werden die vom Parser auch nicht auseinandergerissen.
bis bald
akari
-
wie sieht das denn dann aus ?
so ?
sprintf(Buffer,"%d 0 EXTRACT \"%s\" \"%s\" \"%s\" %d",Nr,pfad[0],pfad[1],temp,flag);????
-
Hallo
Sieht schon besser aus... probiers doch aus.
bis bald
akari
-
okay erstmal vielen Dank für die schnelle Hilfe bis dahin
und jetzt hab ich auch das mit der Befehlszeile begriffen

Allerdings gibt es jetzt ein weiteres Problem:
Dieser erzeugte Buffer:
0 0 EXTRACTC "d:\temp leer\01\01.txt" "d:\temp leer\02\01.txt" "d:\temp leer\03\01.txt" 3wird jetzt weitergegeben und steht in Query;
dazu wird noch ein Datei erstellt in der der Query und ein zielpfad reingeschrieben wird...
fprintf(File,"%s\n%s\n",Query,AnswerFileName);[Edit]
Der Inhalt der Datei sieht jetzt so aus:0 0 EXTRACTC "d:\temp leer\01\01.txt" "d:\temp leer\02\01.txt" "d:\temp leer\03\01.txt" 3 C:\temp1\test.txtda das ganze aber an einen Server geschickt wird...bekomme ich jetzt Syntax error - denn normalerweise müsste der Inhalt der Datei so aussehen:
0 0 EXTRACTC d:\temp\01\01.txt d:\temp\02\01.txt d:\temp\03\01.txt 3 C:\temp1\test.txtsprich ohne die Anführungszeichen...

Vielen Dank für eure Hilfe
