?? pro base64decode.txt
字號:
#code by hengry My blog :http//:hyhgd.blog.51cto.com
proc Base64Decode {code} {
#Creat the Base64 Decoding table
set Base64Table {
A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z a b c d e f
g h i j k l m n o p q r s t u v
w x y z 0 1 2 3 4 5 6 7 8 9 + /
=
}
set i 0
foreach byte $Base64Table {
set DecodingBase64($byte) $i
incr i
}
set list [split $code ""]
set length [llength $list]
set DecodeList ""
set Base64Code ""
for {set i 0} {$i<$length} {incr i 4} {
set BaseCode_0 $DecodingBase64([lindex $list $i])
set BaseCode_1 $DecodingBase64([lindex $list $i+1])
set BaseCode_2 $DecodingBase64([lindex $list $i+2])
set BaseCode_3 $DecodingBase64([lindex $list $i+3])
set code_16 [expr $BaseCode_0<<2]
set code_78 [expr {$i+1<$length?[expr [expr $BaseCode_1>>4]&0x03]:0x00}]
#Add the first code
lappend DecodeList [expr $code_16|$code_78]
set code_14 [expr {$i+1<$length?[expr [expr $BaseCode_1<<4]&0xF0]:0x00}]
if {$i+2>$length || [lindex $list $i+2]=={=}} {
set code1 0x00
} else {
set code_58 [expr [expr $BaseCode_2>>2] &0x0F]
set code1 [expr $code_14|$code_58]
#Add the second code
if {$code1!=0x00} {
lappend DecodeList $code1
}
if {$i+2>$length || [lindex $list $i+2]=={=}} {
set code2 0x00
} else {
set code_12 [expr [expr $BaseCode_2<<6]&0xC0]
}
if {$i+3>$length || [lindex $list $i+3]=={=}} {
set code_38 0x00
} else {
set code_38 [expr $BaseCode_3&0x3F]
}
set code2 [expr $code_12|$code_38]
if {$code2!=0x00} {
lappend DecodeList $code2
}
}
}
#ASCIIDecoding
set data {}
foreach byte $DecodeList {
append data [binary format c $byte]
}
return $data
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -