Я читаю большой файл, и меня интересует только небольшая часть файла, как показано ниже.
TC.0.Type = Bob 1
TC.1.Type = Mark 1
TC.2.Type =
TC.3.Type =
TC.4.Type = Fred 1
TC.5.Type =
TC.6.Type =
TC.7.Type =
TC.8.Type =
TC.9.Type = Fred 1
Я создал переменную, которая теперь содержит эту информацию
data = "{Bob 1} {Mark 1} {} {} {Fred 1} {} {} {} {} {Fred 1}"
TC всегда между 0-9, поэтому длина известна.
Я хотел бы сделать следующее:
1) Если есть несколько экземпляров "Фред 1"и удалите его. 2) Найдите первую пустую ячейку и определите индекс.
Вопрос 1) Обычно ли использовать скобки при использовании lappend? Я ожидал, что это будет только в случае пустых полей
set data ""
for {set j 0} {$j < 10} {incr j} {
lappend data $fromfile
}
puts "Data in list = $data"
Вопрос 2) Я даже пытался использовать регулярное выражение для выбора пустых, но, похоже, не удачно.
Найти пустое поле {}
set j 0
for {set i 0} {$i < $ldata} {incr i} {
# set nline [split $data "\s"]
# puts "data ($i) = $nline"
if {[regexp {\{.*\}} $data]} {
puts " Found {}"
incr j
puts "j = $j"
}
}
Найти поле с именем, например, Боб 1
for {set i 0} {$i < $ldata} {incr i} {
if {[regexp {\{.*[a-zA-Z0-9]\}} $data]} {
puts " Found something with names"
}
}
Буду признателен, если кто-то сможет дать совет и руководство.