Programmparameter mit "," als Trenner

Anfängerfragen zum Programmieren mit PureBasic.
frankmannb
Beiträge: 47
Registriert: 21.02.2010 13:02

Programmparameter mit "," als Trenner

Beitrag von frankmannb »

Hallo Leute,

ich stehe heute vor dem Problem das ich mein erstes Programm erstelle welches 3 Parameter übergeben bekommen soll im folgenden Format.

test.exe datei1,datei2,datei3

Mein Problem ist nun wie ich Purebasic dazu bekomme dei Kommas als Trenner der Parameter zu betrachten. Kann mir hier von euch jemand auf die Sprünge helfen?

grüße frankmannb

counter.i = CountProgramParameters()

das habe ich schon vorbereitet!

For i = 1 To counter.i
Parameter.s = ProgramParameter()
MessageRequester("test",parameter.s,#PB_MessageRequester_Ok )
Next
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: Programmparameter mit "," als Trenner

Beitrag von X360 Andy »

Code: Alles auswählen

Parameter.s = ProgramParameter()
for i = 1 to countstring(parameter,",")+1
debug stringfield(parameter,i,",")
Next
Wenn die Parameter mit leerzeichen sind wirds schon schwerer... :)

Code: Alles auswählen

Parameter.s = "test.txt,my test.txt,text.txt"
parameter = ReplaceString(parameter," ",";") ; ; kann kein Dateizeichen sein, daher passt das...

For i = 1 To CountString(parameter,",")+1
Debug ReplaceString(StringField(parameter,i,","),";"," ");zurückwandeln...
Next
Gruß Andreas
Zuletzt geändert von X360 Andy am 08.11.2010 23:13, insgesamt 1-mal geändert.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Programmparameter mit "," als Trenner

Beitrag von RSBasic »

Code: Alles auswählen

EnableExplicit

Define i
Define Parameter$ = "datei1,datei2,datei3"

For i=1 To 3
  Debug StringField(Parameter$, i, ",")
Next
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Programmparameter mit "," als Trenner

Beitrag von Bisonte »

Warum so kompliziert ?

wenn man Hallo.exe /supi /toll /extrem eingibt bekommt man mit
dem ersten Aufruf von ProgramParameter() "Hallo.exe"
dem zweiten Aufruf "/supi" dem dritten "/toll" usw.

Steht in der Hilfe drin !
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
frankmannb
Beiträge: 47
Registriert: 21.02.2010 13:02

Re: Programmparameter mit "," als Trenner

Beitrag von frankmannb »

Bisonte hat geschrieben:Warum so kompliziert ?

wenn man Hallo.exe /supi /toll /extrem eingibt bekommt man mit
dem ersten Aufruf von ProgramParameter() "Hallo.exe"
dem zweiten Aufruf "/supi" dem dritten "/toll" usw.

Steht in der Hilfe drin !
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?
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: Programmparameter mit "," als Trenner

Beitrag von X360 Andy »

0 ist auch eine zahl....

i = 0
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Programmparameter mit "," als Trenner

Beitrag von TomS »

frankmannb hat geschrieben:Wieso?
Weil Parameter eben durch Leerzeichen getrennt werden. Wenn du deinen eigenen Trenner haben willst, musst es so machen, wie dir oben gezeigt wurde.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Programmparameter mit "," als Trenner

Beitrag von ts-soft »

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.
Seid Win95 sind Leerzeichen erlaubt, aber diese sind immer in Anführungszeichen zu setzen:
test.exe "test.pdf test2.pdf"
Soviele Antworten und keiner gibt den entscheidenden Hinweis?

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Programmparameter mit "," als Trenner

Beitrag von rolaf »

Dafür bista ja der CodeCommander. :mrgreen:

Im übrigen gehts auch ohne Gänsfüßchen, wie oben schon beschrieben reichen auch Leerzeichen.

meistercode.exe blub balub balu :wink:

flensburger.exe plop zisch flenst :allright:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Programmparameter mit "," als Trenner

Beitrag von DarkDragon »

frankmannb hat geschrieben:wenn ich folgendes Programm [...]
Ich seh kein Programm. :wink:

@ts-soft: ich sehe nirgendwo, dass er überhaupt Leerzeichen haben will :? . Der entscheidende Hinweis wäre wohl StringField.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten