Optionen (bzw Paramter ) bei Programmen

Anfängerfragen zum Programmieren mit PureBasic.
KingS
Beiträge: 11
Registriert: 04.01.2006 15:12

Optionen (bzw Paramter ) bei Programmen

Beitrag von KingS »

Hi Leute.
Ich sag es schon mal von Anfang an: Ich hab die Suchfunktion nicht benutzt. Ich hab nämlich absolut keine Ahnung, was ich dazu als Suchbegriff hätte eingeben sollen :(

Also, ich code mit vorliebe Konsolenprogramme.
Ich will jetzt, dass man bei meinem Programm noch Parameter dranhängen kann. Ein Beispiel:
test.exe -acn
Wenn jetzt zb die Option -a angehängt wurde soll zb die Variable Option den Wert 1 haben. Bei c den Wert 2 usw.

Ich hoffe ihr versteht, was ich meine. Achja, ich würde das gerne ohne WinApi machen. Habe mir PureBasic zwar original gekauft, aber ich will das Programm auch unter Linux verwenden. :)

Mfg KingS
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Optionen (bzw Paramter ) bei Programmen

Beitrag von Kiffi »

> Ich will jetzt, dass man bei meinem Programm noch Parameter
> dranhängen kann.

Du suchst nach [c]ProgramParameter()[/c]

Code: Alles auswählen

Parameter$=ProgramParameter()

Select Parameter$
  Case "-a"
    Option=1
  Case "-c"
    Option=2
EndSelect
Grüße ... Kiffi
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

oder so :

Code: Alles auswählen

OpenConsole()

param.s = ProgramParameter()

For i = 1 To Len(param)
  
  flag.s = Mid(param,i,1)
  
  Select flag
    Case "a"
      PrintN("a -> 1")
    Case "c"
      PrintN("c -> 2")
    Case "n"
      PrintN("n -> 3")
  EndSelect
  
  
Next 
  

Input()
CloseConsole()

; programm.exe /acn

Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Dazu hätte ich noch eine Frage:
Wie kann man den Exitcode benutzen? Wenn ich beispielsweise ein Programm mit einem bestimmten Parameter aufrufe, dann soll mein Programm irgendwas machen, und dann z. B. beenden:

Code: Alles auswählen

End "Mein Exitcode"
Lt. hilfe ist das so syntaktisch richtig. Nur wie fange ich dieses "Mein Exitcode" ab?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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

Beitrag von ts-soft »

AND51 hat geschrieben:

Code: Alles auswählen

End "Mein Exitcode"
Lt. hilfe ist das so syntaktisch richtig. Nur wie fange ich dieses "Mein Exitcode" ab?
Nein, du kannst nur eine Zahl übergeben

Code: Alles auswählen

End 1
Dieses ist aber eigentlich für Konsolenprogramme.
Du kannste dein Programm per Batch starten, und dann am ende den Exitcode abfragen:
mein.bat hat geschrieben:c:\meineprogi\meinprogramm.exe
echo %errorlevel%
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
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Achso.
Gibt es denn einen anderen Weg, wenn ich ein Programm aufrufe, dass es meinen Paramterer verarbeitet und mir dann das Ergebnis, egal ob String oder Zahl, mitteilt?
OK, notfalls macht man es halt über eine Datei, Registry, Zwischenablage, InitNetwork(), aber vllt. gibts ja was eleganteres?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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

Beitrag von ts-soft »

Elleganter ist z.B. GlobalSharedmemory
findeste in PBOSL. Zischenablage würde ich ganz abraten in diesem Fall, da
diese ja evtl. Inhalt einer anderen Anwendung enthalten könnte.
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
Antworten