base64.tcl

来自「使用TCL实现BASE64的编码和解码功能」· TCL 代码 · 共 52 行

TCL
52
字号
package require base640
set prompt {USAGE: base64 [encode|decode] <sourcefilename> <savefilename>}
if {!$argc||$argv=="-?"} { 
    puts $prompt
    return -1
    }
if {$argc<2||$argc>3} {puts $prompt ;return -1}
set i 0
foreach arg_name $argv {
    set arg($i) $arg_name
    incr i 
    }
if {$arg(0)=={encode}} {
    set eret1 [catch {set source_file [open "$arg(1)" r]}]
    if {$eret1} {
       puts "Can't find the  $arg(1) file"
        return -1
    }
    set eret2 [catch {set data [read $source_file]}]
    if {$eret2 } {
       puts "error:There is no enough memory"
    }
    set code [Base64Encode $data]
    if {$argv==3} { 
        set eret3 [catch {set save_file [open "$arg(2).base64" w]}]
    } else {set eret3 [catch {set save_file [open "$arg(1).base64" w]}]}
    if {$eret3 } {puts "error:create the file fail!"}
    puts $save_file $code
    close $save_file
} elseif {$arg(0)=={decode}} {
    set eret1 [catch {set source_file [open "$arg(1)" r]}]
    if {$eret1} {
        puts "Can't find the  $arg(1) file"
        return -1
    }
    set eret2 [catch {set code [read $source_file]}]
    if {$eret2 } {
        puts "error: No enough memory!"
    }
    set data [Base64Decode $code]
    if {$argc==3} { set eret3 [catch {set save_file [open "$arg(2)" w]}]
    } else { set eret3 [catch {set save_file [open "$arg(1).txt" w]}]}
    if {$eret3} {puts "error:create the file fail!"; return -1}
    puts $save_file $data
    close $save_file
} else {
    puts $prompt
    return -1
}
        
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?