Есть строка:
Код: Выделить всё
set a 1234;
как обратиться к каждому элементу по номеру?
как удалить элемент из строки (хотя бы последний)?
как вставить элемент в середину строки?
Модератор: Модераторы разделов
Код: Выделить всё
set a 1234;
Код: Выделить всё
#!/usr/bin/tclsh
set a 1234
# 1) доступ к злементам ( отсчет с 0 )
puts [string index $a 0]
puts [string range $a 1 2]
# 2) удаляем последний
puts [string replace $a 3 3]
# 3) вставляем W после 1-го элемента ( отсчет с 0)
set sub [string index $a 1]W
puts $sub;# распечатаем подстроку
puts [string replace $a 1 1 $sub]
Код: Выделить всё
#!/usr/bin/tclsh
# бесконечный цикл
while { 1>0 } {}
Код: Выделить всё
#!/usr/bin/tclsh
# пробелы обязательны !
puts [exec /home/mike/while.tcl &]
# или puts [exec -keepnewline /home/mike/while.tcl &]
Код: Выделить всё
set files [list]
foreach dir [glob -types d *] {
set files [concat $files [glob -dir $dir *.tcl]]
}
Не использую tcl, проверил всё тут правильно просто отсутствует в текущем каталоге другой каталог с файлами c расширением *.tcl. Тут всё верно ошибка и должна появляться, но вот если нужно что бы программа не завершала работу, если в текущем каталоге нет каталогов и файлов .tcl, то нужно использовать try.
Код: Выделить всё
#!/usr/bin/tclsh
set files [list]
try {
foreach dir [glob -types d *] {
set files [concat $files [glob -dir $dir *.tcl]]
}
} trap {} {msg} {
puts "Error: $msg"
}
Код: Выделить всё
#!/usr/bin/tclsh
set files [list]
try {
foreach dir [glob -types d *] {
if {[catch { set files [concat $files [glob -dir $dir *.tcl]] } result] == 1} {puts "Error: $result"}
}
} trap {} {msg} {
puts "Error: $msg"
}