我需要获取字符串中每个字符的ASCII码。实际上是一个(小)文件中的每个字符。以下前三行成功地将文件的所有内容提取到字符串中(参见this recipe)。
我相信我正确地识别了字符的ASCII码(请参见http://wiki.tcl.tk/1497)。但是,我在解决如何循环遍历字符串中的每个字符时遇到了问题。
首先,我不认为以下是使用Tcl循环遍历字符串中的字符的特别惯用的方法。其次,更重要的是,它的行为不正确,在每个字符之间插入了一个额外的元素。
下面是我编写的用于操作上面设置的"data"变量内容的代码,以及一些示例输出。
代码:
set fp [open "store_order_create_ddl.sql" r]
set data [read $fp]
close $fp
我相信我正确地识别了字符的ASCII码(请参见http://wiki.tcl.tk/1497)。但是,我在解决如何循环遍历字符串中的每个字符时遇到了问题。
首先,我不认为以下是使用Tcl循环遍历字符串中的字符的特别惯用的方法。其次,更重要的是,它的行为不正确,在每个字符之间插入了一个额外的元素。
下面是我编写的用于操作上面设置的"data"变量内容的代码,以及一些示例输出。
代码:
for {set i 0} {$i < [string length $data]} {incr i} {
set char [string index $data $i]
scan $char %c ascii
puts "char: $char (ascii: $ascii)"
}
输出:
char: C (ascii: 67)
char: (ascii: 0)
char: R (ascii: 82)
char: (ascii: 0)
char: E (ascii: 69)
char: (ascii: 0)
char: A (ascii: 65)
char: (ascii: 0)
char: T (ascii: 84)
char: (ascii: 0)
char: E (ascii: 69)
char: (ascii: 0)
char: (ascii: 32)
char: (ascii: 0)
char: T (ascii: 84)
char: (ascii: 0)
char: A (ascii: 65)
char: (ascii: 0)
char: B (ascii: 66)
char: (ascii: 0)
char: L (ascii: 76)
char: (ascii: 0)
char: E (ascii: 69)