🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.visualbasic
Article #1011

Re: コマンド引数を分解する。

#1011
From: Kazumi Sugioka
Date: Wed, 19 Nov 1997 00:00
96 lines
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-mail
References: <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