Seite 2 von 2
Re: Programmparameter mit "," als Trenner
Verfasst: 09.11.2010 11:01
von Bisonte
frankmannb hat geschrieben:
wenn ich folgendes Programm kompiliere und als EXE abspeichere und dann das PRogramm auf der Kommandozeile starte mit z.B. test.exe test.pdf test2.pdf
bekomme ich nur test.pdf als auch test2.pdf als parameter angezeigt.
Starte ich hingegen das Programm mit
z.B. test.exe test.pdf,test2.pdf
bekomme ich nur einen Parameter nämlich test.pdf,test2.pdf angezeigt. Wieso?
also folgendes prgramm gibt Parameter1,2,3 und 4 aus....
Code: Alles auswählen
OpenConsole()
For i=1 To 4 ;##### Maximal 4 Parameter
a.s = ProgramParameter()
PrintN("Parameter "+Str(i)+" : "+a)
Next i
Input()
funktioniert tadellos.... nur durch Leerzeichen getrennt.
CMD.exe hat geschrieben:para.exe test.pdf test2.pdf test3.pdf
Ausgabe :
Parameter 1 : test.pdf
Parameter 2 : test2.pdf
Parameter 3 : test3.pdf
Parameter 4 :
Re: Programmparameter mit "," als Trenner
Verfasst: 09.11.2010 11:07
von DarkDragon
Bisonte hat geschrieben:funktioniert tadellos.... nur durch Leerzeichen getrennt.

Da ist der Haken: Er will keine Leerzeichen, er will Kommas.
Sowas also:
Code: Alles auswählen
Define AllParameters.s
Define k.i
; Füge alle Parameter zusammen
AllParameters = ""
If CountProgramParameters() > 0
For k = 0 To CountProgramParameters() - 2
AllParameters + ProgramParameter(k) + " "
Next k
AllParameters + ProgramParameter(k)
EndIf
; Fülle ein Array
Dim Parameter.s(CountString(AllParameters, ","))
For k = 0 To ArraySize(Parameter())
Parameter(k) = StringField(AllParameters, k + 1, ",")
Next k
; Teste das Array
For k = 0 To ArraySize(Parameter())
Debug Parameter(k)
Next k
Wobei das ja natürlich nicht die saubere Art ist, denn das ist nichtmehr Betriebssystemkompatibel, d.h. man kann keine Files mehr über Drag'n'Drop auf die Exe schieben o.ä..
Re: Programmparameter mit "," als Trenner
Verfasst: 09.11.2010 11:43
von Bisonte
DarkDragon hat geschrieben:Bisonte hat geschrieben:funktioniert tadellos.... nur durch Leerzeichen getrennt.

Da ist der Haken: Er will keine Leerzeichen, er will Kommas.
Es las sich aber irgendwie, dass er die Leerzeichen "notgedrungen" haben wollte, weil ihm nicht bekannt war,
dass es so auch geht...
Naja ... Rein spekulatius ... äh spekulativ.

Re: Programmparameter mit "," als Trenner
Verfasst: 10.11.2010 11:12
von GPI
Äh, warum gibt man in der CLI/DOS-Box nicht folgendes ein:
Code: Alles auswählen
MyPrg "C:\Meine Daten\datei1.pdf" "d:\unsinniger Pfad\Dateimüll.txt" "e:\Ganz Viele Leerzeichen.haha"
als Programmparameter werden den Programm dann 3 Werte übergeben - mit den Spaces.
Von den Trennen mit "," würde ich dringend abraten. Zum einen ist das "," durchaus ein Zeiche, das in einer Datei vorkommen kann. Zum zweiten ist das einfach nicht konform mit allen anderen Dos-Programmen.
Re: Programmparameter mit "," als Trenner
Verfasst: 12.11.2010 22:25
von frankmannb
Hallo Leute,
vielen Dank für die vielen Vorschläge. Ich denke ich werde zunächst folgenden nutzen.
Parameter.s = ProgramParameter()
For i = 1 To CountString(parameter.s,",")+ 1
MessageRequester("TEST",StringField(parameter,i,","),#PB_MessageRequester_Ok)
Next
Warum durch "," getrennt? Hintergrund ist das ich ein Programm nachbauen muss welches bereits Produktiv im Einsatz ist, es aber von der Geschwindigkeit verbessert werden soll. Dies ist der Anfang dazu.
Vielen Dank nochmals für eure Hilfe.
grüße frankmannb