こんにちは私はテキストマクロプログラムであるShorthandと呼ばれるプログラムでTCLを使おうとしています。とにかく私はそれを使ってMacアドレスを教えて再フォーマットしようとしています。指定されたインデックス整数で文字列を分割する関数がわかりません。これが私がこれまでに持っているものです。
set DirtyMac [sh_set clipboard]
set HalfMac [string map { . "" } $DirtyMac ]
set FullMac [string map { : "" } $HalfMac]
set ParsedMac [string map { " " "" } $FullMac]
if {[string length $ParsedMac] < 12 } {
return "Mac too short";
} elseif {[string length $ParsedMac] > 12 } {
return "Mac too long";
} else {
return [string map { " " "" } $ParsedMac]
}
それは私が試しているすべての不要な文字をMacから取り除くことです
set Mac1 [linsert $ParsedMac 4 .]
return $Mac1;
また
set Mac1 [split [string is index $ParsedMac 4 ] "."]
return $Mac1;
何も機能していません...誰かが助けるためにできることは何でも素晴らしいでしょう!
さて、私がやろうとしているのは、11:22:33:44:55:66、1122.3344.5566、112233445566などのMacアドレスを取得し、これら3つの形式のいずれかで出力することです。最終的に、出力の必要性に基づいて呼び出される3つの異なるスクリプトを作成します。
たとえば、私はMac1122.3344.5566を持っています。11:22:33:44:55:66に変換したいと思います。
set DirtyMac "1122.3344.5566"
set ParsedMac [string map {. "" : "" " " ""} $DirtyMac]
scan $ParsedMac "%2s%2s%2s%2s%2s%2s" a b c d e f
set FullMac [join $a $b $c $d $e $f ":"]
return $FullMac;
また
私はマックを持っています112233445566私はそれを1122.3344.5566に変えたいです
set DirtyMac "112233445566"
set ParsedMac [string map {. "" : "" " " ""} $DirtyMac]
scan $ParsedMac "%2s%2s%2s%2s%2s%2s" a b c d e f
set FullMac [join $a $b $c $d $e $f ":"]
return $FullMac;
最後に
私はマック1122.3344.5566を持っています|| 11:22:33:44:55:66112233445566に変えたい
set DirtyMac | Mac Address Input|
set ParsedMac [string map {. "" : "" " " ""} $DirtyMac]
return $ParsedMac;