はじめに [ここをクリックすると内容が表示されます]
コマンドラインの文字列をスペースで区切ります。前にも同じようなものがありましたが、少し違うのであえて載せます。
""の中のスペースは無視します。
全てひとまとめ版 [ここをクリックすると内容が表示されます]
コード: 全て選択
Function cmdbun(cmd As String,sepalator As String) As String
Dim command As String
Dim where As DWord
command=cmd
cmdbun=""
While Len(command)>0
if Asc(command)=Asc(Ex"\q") Then
where=InStr(2,command,Ex"\q")
if where=0 Then where=Len(command)+1
cmdbun=cmdbun+Mid$(command,2,where-2)
command=Mid$(command,where+2)
Else
where=InStr(1,command," ")
if where=0 Then where=Len(command)+1
cmdbun=cmdbun+Mid$(command,1,where-1)
command=Mid$(command,where+1)
End If
cmdbun=cmdbun+sepalator
Wend
cmdbun=Left$(cmdbun,Len(cmdbun)-Len(sepalator))
End Function
スイッチとそれ以外を分ける版 [ここをクリックすると内容が表示されます]
コード: 全て選択
Sub cmdbunpathsw(ByRef file As String,ByRef switch As String,cmd As String,sepalator As String)
Dim command As String
Dim where As DWord
Dim horyuu As String
command=cmd
file=""
switch=""
While Len(command)>0
If Asc(command)=Asc(Ex"\q") Then
where=InStr(2,command,Ex"\q")
If where=0 Then where=Len(command)+1
horyuu=Mid$(command,2,where-2)
command=Mid$(command,where+2)
Else
where=InStr(1,command," ")
If where=0 Then where=Len(command)+1
horyuu=Mid$(command,1,where-1)
command=Mid$(command,where+1)
End If
If Asc(horyuu)=Asc("/") or Asc(horyuu)=Asc("-") Then
switch=switch+Mid$(horyuu,2)+sepalator
Else
file=file+horyuu+sepalator
End If
Wend
if Len(file)>0 Then file=Left$(file,Len(file)-Len(sepalator))
if Len(switch)>0 Then switch=Left$(switch,Len(switch)-Len(sepalator))
End Sub
説明 [ここをクリックすると内容が表示されます]
書式
全てひとまとめ版:cmdbun(cmd,sepalator)
スイッチとそれ以外を分ける版:cmdbunpathsw(file,switch,cmd,sepalator)
共通事項
cmd(String型):コマンドライン文字列を指定する。
sepalator(String型):区切り文字列を指定する。
cmdbunについて
戻り値(String型):コマンドラインを区切った文字列
cmdbunpathswについて
file(ポインタ参照String型):分割されたファイル名が入る
switch(ポインタ参照String型):分割されたスイッチが入る
戻り値:なし
全てひとまとめ版:cmdbun(cmd,sepalator)
スイッチとそれ以外を分ける版:cmdbunpathsw(file,switch,cmd,sepalator)
共通事項
cmd(String型):コマンドライン文字列を指定する。
sepalator(String型):区切り文字列を指定する。
cmdbunについて
戻り値(String型):コマンドラインを区切った文字列
cmdbunpathswについて
file(ポインタ参照String型):分割されたファイル名が入る
switch(ポインタ参照String型):分割されたスイッチが入る
戻り値:なし
サンプルプログラム [ここをクリックすると内容が表示されます]
最後にひとつ:hideばっかりですみません...。コード: 全て選択
#N88BASIC
Dim cmd As String
Dim file As String
Dim switch As String
cmd=MakeStr(GetCommandLine())
file=cmdbun(cmd,Ex"\r\n")
Print "-------------全て-------------"
Print file
cmdbunpathsw(file,switch,cmd,Ex"\r\n")
Print "---------ファイルのみ---------"
Print file
Print "---------スイッチのみ---------"
Print switch
Print "------------------------------"
Function cmdbun(cmd As String,sepalator As String) As String
Dim command As String
Dim where As DWord
command=cmd
cmdbun=""
While Len(command)>0
if Asc(command)=Asc(Ex"\q") Then
where=InStr(2,command,Ex"\q")
if where=0 Then where=Len(command)+1
cmdbun=cmdbun+Mid$(command,2,where-2)
command=Mid$(command,where+2)
Else
where=InStr(1,command," ")
if where=0 Then where=Len(command)+1
cmdbun=cmdbun+Mid$(command,1,where-1)
command=Mid$(command,where+1)
End If
cmdbun=cmdbun+sepalator
Wend
cmdbun=Left$(cmdbun,Len(cmdbun)-Len(sepalator))
End Function
Sub cmdbunpathsw(ByRef file As String,ByRef switch As String,cmd As String,sepalator As String)
Dim command As String
Dim where As DWord
Dim horyuu As String
command=cmd
file=""
switch=""
While Len(command)>0
If Asc(command)=Asc(Ex"\q") Then
where=InStr(2,command,Ex"\q")
If where=0 Then where=Len(command)+1
horyuu=Mid$(command,2,where-2)
command=Mid$(command,where+2)
Else
where=InStr(1,command," ")
If where=0 Then where=Len(command)+1
horyuu=Mid$(command,1,where-1)
command=Mid$(command,where+1)
End If
If Asc(horyuu)=Asc("/") or Asc(horyuu)=Asc("-") Then
switch=switch+Mid$(horyuu,2)+sepalator
Else
file=file+horyuu+sepalator
End If
Wend
if Len(file)>0 Then file=Left$(file,Len(file)-Len(sepalator))
if Len(switch)>0 Then switch=Left$(switch,Len(switch)-Len(sepalator))
End Sub