Article View: fj.lang.visualbasic
Article #1011Re: コマンド引数を分解する。
From: Kazumi Sugioka
Date: Wed, 19 Nov 1997 00:00
Date: Wed, 19 Nov 1997 00:00
96 lines
3109 bytes
3109 bytes
$B?y2,!wITFs1[$H?=$7$^$9!#(B
In article <34727D3B.1FE8@mxn.meshnet.or.jp>, copoo@mxn.meshnet.or.jp says...
>
>$B$/$^$$$G$9!#$*@$OC$K$J$C$F$*$j$^$9!#(B
>$B$5$C$=$/$G$9$,<ALd$G$9!#(B
>
>aaa.exe a b c d e
>
>$B$r<B9T$7$^$7$?!#(B
>command$B4X?t$r;H$C$F!"%3%^%s%I0z?t$G$"$k(B
>"a b c d e"$B$r(Bstring$B7?JQ?t$K3JG<$7$^$7$?!#(B
>
>$BEvJ}$G$O<B9T;~$K;XDj$5$l$?!"$3$l$i(B5$B$D$N(B
>$B0z?t$r$=$l$>$lI>2A$7!"$=$N8e$N=hM}$r7hDj(B
>$B$9$k$h$&$K$7$h$&$H;W$C$F$$$^$9!#(B
>
>$B$D$^$j!"0J2<$N$h$&$J=hM}$r$7$?$$$N$G$9!#(B
>
> dim Cmdline as string
> dim Dim firstarg, secondarg, thirdarg, fourtharg, fiftharg As String
>
> Cmdline = Command '$B%3%^%s%I0z?t<h$j9~$_(B cmdline = "a b c d e"
>
> 'Cmdline$B$+$i!"3F0z?t$r2rBNJ,N%!#(B
> 'firstarg = "a"
> 'secondarg = "b"
> 'thirdarg = "c"
> 'fourtharg = "d"
> 'fiftharg = "e"
>
> if firstarg = "a" then
> $B!&!&!&!&!&(B
> elseif secondarg = "b" then
> $B!&!&!&!&!&(B
> end if
>
>$B>e5-$NNc$N2rBNJ,N%$N$d$jJ}$K$D$$$FG:$s$G$$$^$9!#(B
>$B1s2s$j$J$d$jJ}$J$i2?$+$"$k$h$&$J5$$,$7$^$9$,!"(B
>$B4JC1$KJ,2r$9$k$3$H$O$G$-$J$$$+C5$C$F$$$^$9!#(B
>
>$B2?$+%*%9%9%a$N4X?t$d%9%F!<%H%a%s%H$,$"$kJ}(B
>$B%l%92<$5$$!#$=$l$G$O!#(B
$B<+J,$G:n$k$H$3$s$J46$8$G$7$g$&$+!)(B
$B4V0c$C$F$$$k8D=j$J$I$,$"$j$^$7$?$i$I$J$?$+%U%)%m!<$*4j$$$7$^$9!#(B
'--------------------------------------------------------
' $B4X?tL>(B : GetArgv
' $B5!G=(B : $B%3%^%s%I%i%$%s0z?t$rJ,3d(B
' $B0z?t(B : szCommand $B%3%^%s%I%i%$%s0z?t(B
' : argv() $BJ,3d$5$l$?%3%^%s%I%i%$%s0z?t(B
' $BLa$jCM(B : $BJ,3d$5$l$?8D?t(B
'--------------------------------------------------------
Public Function GetArgv(szCommand As String, argv() As String) As Long
Dim nSpcPos As Integer
Dim i%
If szCommand = "" Then
GetArgv = 0
Exit Function
End If
i% = 0 '$B=i4|2=(B
Do While (InStr(szCommand, " "))
nSpcPos = InStr(szCommand, " ")
If nSpcPos Then
argv(i%) = Left(szCommand, nSpcPos - 1)
szCommand = Right(szCommand, Len(szCommand) - nSpcPos)
i% = i% + 1
Else
argv(i%) = szCommand
End If
Loop
GetArgv = i% '$BLa$jCM(B
End Function
$B8F$S=P$7B&(B
Private Sub Command1_Click()
Const MAX_ARG = 32
Dim argv(MAX_ARG) As String
Dim szCommand As String
Dim num As Integer
Dim i%
szCommand = Command
num = GetArgv(szCommand, argv())
For i% = 0 To num - 1
Debug.Print argv(i%)
Next i%
End Sub
Technical Details
Message-ID:
<1997Nov19.101719.28480@fujikoshi.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<34727D3B.1FE8@mxn.meshnet.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 105c2e,c47bedc0e0e8aa20 X-Google-Attributes: gid105c2e,public From: sugioka@fujikoshi.co.jp (Kazumi Sugioka) Subject: Re: コマンド引数を分解する。 Date: 1997/11/19 Message-ID: <1997Nov19.101719.28480@fujikoshi.co.jp> X-Deja-AN: 290794193 Sender: news@fujikoshi.co.jp References: <34727D3B.1FE8@mxn.meshnet.or.jp> Organization: NACHI-Fujikochi Corp Newsgroups: fj.lang.visualbasic