| 
			
				|  | JLI Spieleprogrammierung 
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 22.03.2006, 17:46    Titel: [DOS]Platzhalter für Leerzeichen |   |  
				| 
 |  
				| Hi, 
 ich suche nach einem Platzhalter, mit dem man in DOS sowohl Leerzeichen in Dateinamen als auch im Pfad zur Datei verwenden kann. Für die Dateinamen selbst klappt '*' oder '?' wunderbar. Allerdings wird der Pfad nicht gefunden, falls man die Leerzeichen der Oberordner durch eines dieser Zeichen ersetzt
   
 Hat jemand eine Ahnung, ob es sowas auch für Pfade gibt?
 _________________
 www.visualgamesentertainment.net
 Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
 (1) Realtime Developer Testing and Debugging Console
 
   Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
 Hilf Schäuble! Damit er auch was findet...
 |  |  
		| Nach oben |  |  
		|  |  
		| xardias JLI Master
 
  
 Alter: 39
 Anmeldedatum: 28.12.2003
 Beiträge: 804
 Wohnort: Palo Alto, CA
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 22.03.2006, 22:14    Titel: |   |  
				| 
 |  
				| ich befürchte dass es das nicht gibt, oder? immerhin durfte man in dos glaube ich keine leerzeichen verwenden. |  |  
		| Nach oben |  |  
		|  |  
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 22.03.2006, 23:30    Titel: |   |  
				| 
 |  
				| Hmm...dann ist aber die Frage, wieso es mit * und ? funktioniert. Für Leerzeichen im Dateinamen funktioniert das ja so nach dem "Platzhalterprinzip". Aber komisch, dass das bei ganzen Pfaden anders ist...
  _________________
 www.visualgamesentertainment.net
 Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
 (1) Realtime Developer Testing and Debugging Console
 
   Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
 Hilf Schäuble! Damit er auch was findet...
 |  |  
		| Nach oben |  |  
		|  |  
		| AFE-GmdG JLI MVP
 
  
  
 Alter: 46
 Anmeldedatum: 19.07.2002
 Beiträge: 1374
 Wohnort: Irgendwo im Universum...
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 23.03.2006, 09:39    Titel: |   |  
				| 
 |  
				| Das Kommt jetzt auf die Umgebung drauf an: Leerzeichen an und für sich waren zwar in DOS unerwünsct, hatten aber funktioniert - so konnte man durchaus eine (8.3)Datei mit dem Namen "read me.txt" erstellen. In wieweit sie von allen DOS-Programmen richtig verarbeitet werden konnte ist mir unbekannt. Ab Win95 und mit Einführung von Langen dateinamen sind Leerzeichen überhaupt kein Problem mehr gewesen.
 Zur Suche: "* *.*" sucht eine Datei, welche explizit ein Leerzeichen enthält. "**" sucht grundsätzlich alle Dateien / Pfade, "*" sucht alle Verzeichnisse und eventuell auch Dateien ohne Endung
   Noch anders ist es für die Suchmaske für die C-Funktion "findfirst()" - dort findet ein einfacher Stern in der Regel alles - und über Flags legt man fest, dass man z.B. nur Verzeichnisse haben möchte...
 _________________
 
  	  | CPP: |  	  | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L|| (h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
 %6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
 | 
 |  |  
		| Nach oben |  |  
		|  |  
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 23.03.2006, 11:56    Titel: |   |  
				| 
 |  
				| Ich versuch mal, das Problem besser zu beschreiben: Ich verwende für mein Programm eine externe Anwendung, der per Kommandozeile Argumente übergeben werden. Darunter befinden sich auch Pfade mit Dateinamen. Dummerweise kann ich jetzt nicht sicherstellen, dass der Enduser immer einen Pfad/eine Datei ohne Leerzeichen auswählt.
 Bei einem solchen Fall existiert eben das schon erwähnte Problem, dass die Datei dann nicht gefunden wird. Für die Dateinamen selbst ist das Problem ganz einfach mit '*' oder '?' gelöst. Aber was, wenn der User jetzt z.B. irgendeine Datei unter C:\whatever\Dokumente und Einstellungen\ auswählt?
 Da unter DOS ein Leerzeichen i.A. als Trennzeichen gilt, wird das natürlich als Ende des Arguments(bzw. hier des Pfades) gewertet.
 Die Methode, dass man den Pfad einfach in Anführungsstriche setzt, sollte zwar in der MS-DOS-Eingabeaufforderung funktionieren - allerdings leider nicht bei dem externen Programm, dem ich per ShellExecuteEx die Argumente als Kommandozeile übergebe
   
 <edit>
 Falls das von Relevanz ist: Das Programm ist ffmpeg.exe (zum Umwandeln von Videos mit den verschiedensten Codecs)
 </edit>
 _________________
 www.visualgamesentertainment.net
 Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
 (1) Realtime Developer Testing and Debugging Console
 
   Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
 Hilf Schäuble! Damit er auch was findet...
 |  |  
		| Nach oben |  |  
		|  |  
		| AFE-GmdG JLI MVP
 
  
  
 Alter: 46
 Anmeldedatum: 19.07.2002
 Beiträge: 1374
 Wohnort: Irgendwo im Universum...
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 24.03.2006, 11:16    Titel: |   |  
				| 
 |  
				| Wenn man z.B. Drag-n-Drop nutzt, um eine Datei auf die Exe zu ziehen, ist der Parameter so immer in Anführungszeichen gepackt. Bei ShellExecute (Registry??) geht das genauso - in dem du den Platzhalter %1 in Anführungszeichen setzt... Im Programmquelltext bist du für Anführungszeichen selbst verantwortlich. _________________
 
  	  | CPP: |  	  | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L|| (h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
 %6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
 | 
 |  |  
		| Nach oben |  |  
		|  |  
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 24.03.2006, 14:49    Titel: |   |  
				| 
 |  
				| Das verstehe ich jetzt nicht ganz... Meinst du, für die Leerzeichen könnte man "%1" als Platzhalter verwenden?
 _________________
 www.visualgamesentertainment.net
 Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
 (1) Realtime Developer Testing and Debugging Console
 
   Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
 Hilf Schäuble! Damit er auch was findet...
 |  |  
		| Nach oben |  |  
		|  |  
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 26.03.2006, 14:03    Titel: |   |  
				| 
 |  
				| Okay...die Lösung ist so simpel, dass ich nicht von selbst drauf gekommen bin  *lol* Ein Platzhalter, der sowohl für Dateinamen als auch für Pfade eingesetzt werden kann ist " " (in Worten: Anführungsstriche-Leerzeichen-Anführungsstriche).
 
 Anzumerken ist, dass das offenbar nicht immer über die MS-DOS-Eingabeaufforderung funktioniert, weil da offenbar z.T. noch Zeichen umgewandelt werden und die " plötzlich als á o.ä. angezeigt wurden. Wenn ichs aus dem Programm direkt mit ShellExecuteEx() übergebe, dann geht es jedenfalls
  _________________
 www.visualgamesentertainment.net
 Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
 (1) Realtime Developer Testing and Debugging Console
 
   Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
 Hilf Schäuble! Damit er auch was findet...
 |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten.
 Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
 Du kannst deine Beiträge in diesem Forum nicht löschen.
 Du kannst an Umfragen in diesem Forum nicht mitmachen.
 
 |  
 Powered by phpBB © 2001, 2005 phpBB Group
 Deutsche Übersetzung von phpBB.de
 |