Avatar billede z1n Nybegynder
14. marts 2004 - 19:32 Der er 12 kommentarer og
1 løsning

commandline parameters

Hey..

jeg har mit program og får en tal størrelse ud fra commandline
eks.
mitprogram.exe 4000000

det virker fint men hvordan laver jeg så jeg kan have 2 parametere ? eks.
mitprogram.exe 4000000 /s
så brugeren kan vælge om det skal være silent ?!
Avatar billede johndoesacc Nybegynder
14. marts 2004 - 19:37 #1
jeg kunne forestille mig en mulighed ville være at køre mitprogram.exe "4000000 /s" og så dele parameteren op ved hvert mellemrum... men det er vel ikke den bedste løsning... :)
Avatar billede thesurfer Nybegynder
14. marts 2004 - 19:37 #2
Jeg mener at Command$ (med $) tager hele linien som 1 parameter. Du skal så dele den op, f.eks. ved " " (mellemrum):

tmp = Command$
arrTmp = split(tmp, " ")

Så får du:
arrTmp(0) er lig: 4000000
arrTmp(1) er lig: /s
Avatar billede z1n Nybegynder
14. marts 2004 - 19:39 #3
hvad så hvia der ikke er skrevet noget i arrTmp(1) ??
Avatar billede thesurfer Nybegynder
14. marts 2004 - 19:42 #4
Tja, så er der ikke noget i arrTmp(1)..? :-)
Du kan jo altid tjekke indholdet, før du bruger koden:

if arrTmp(1) <> "" then
' der er noget i arrTmp(1), så kør "silent"
else
' der er IKKE noget i arrTmp(1), så LARM HELT VILDT ;-)
end if
Avatar billede thesurfer Nybegynder
14. marts 2004 - 19:44 #5
Eller:
if arrTmp(1) = "/s" then
' silent
else
' ikke silent
end if

du kan også lave en loop, der checker alle værdierne, og søger efter "/s":
strSilent = "nej"
for i = LBound(arrTmp) to Ubound(arrTmp)
  if arrTmp(i) = "/s" then strSilent = "ja"
next

if strSilent = "ja" then
' kør silent
else
' kør normalt
end if
Avatar billede thesurfer Nybegynder
14. marts 2004 - 19:45 #6
den sidste kode (den med for-next) er ligeglad om prog.exe køres med:

"4000000 /s"

eller omvendt:

"/s 4000000"
Avatar billede z1n Nybegynder
14. marts 2004 - 19:59 #7
er det uden den split ?
Avatar billede thesurfer Nybegynder
14. marts 2004 - 20:03 #8
nej, det er med split:

tmp = Command$
arrTmp = split(tmp, " ")

strSilent = "nej"
for i = LBound(arrTmp) to Ubound(arrTmp)
  if arrTmp(i) = "/s" then strSilent = "ja"
next

if strSilent = "ja" then
' kør silent
else
' kør normalt
end if
Avatar billede thesurfer Nybegynder
14. marts 2004 - 20:05 #9
en anden mulighed:
strSilent = "nej"
if inStr(Command$, "/s") then strSilent = "ja"

if strSilent = "ja" then
.....
end if

man kunne også bare bruge:
if inStr(Command$, "/s") then
' kør silent
else
' kør normalt
end if


Men det kommer an på, hvad/hvordan alt det andet kode, er sat op..
Avatar billede z1n Nybegynder
14. marts 2004 - 20:06 #10
thx det virker max drop et svar
Avatar billede thesurfer Nybegynder
14. marts 2004 - 20:08 #11
Et svar er droppet :-)
Avatar billede thesurfer Nybegynder
14. marts 2004 - 20:28 #12
..husk at markere navnet *før* du klikker på Accepter-knappen :-)
..ellers virker det ikke..
Avatar billede z1n Nybegynder
14. marts 2004 - 22:07 #13
here ya go og thx
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester