2014-10-23 3 views
0

Привет, ребята, я использую TCL (IVR/TCL) для Cisco Voice Gateway .. и мне нужно иметь текстовый файл, внутри которого есть только ОТКРЫТО или ЗАКРЫТО значение .. всего 1 значение. . таким образом, когда вызов arrieves я просматриваю, если бизнес открыт или закрыт ..TCL записывать и читать только одно значение

Тогда я сделать еще один TCL только к менеджеру месту вызова и открыть/закрыть BUSSINESS ..

Я прочитал, что вы может использовать временный файл до написания файла ... Это действительно необходимо

В основном мне нужна только первая строка и писать ОТКРЫТО или ЗАКРЫТО, а затем в другом tcl ju го чтения файла и прочитать значение ..

То, что я должен иметь в виду, позаботиться о том, что файл содержит только одну строку ... и на закрытом или открытом множестве значений ..

for reading I am using 
set fd [open $filename] 
while {[gets $fd line] >= 0} { 
     set data [lindex $line 0] 
     puts "\n Date: $data ::" 

     if { [expr { $data == "closed" }] } { 
       set closed "1" 
       puts "\n Date Found on the List" 
} 

Но действительно нужно couse Я просто читаю одну строку ?? Как я могу написать файл ... ??

ответ

0

Если вы считаете, что линия интереса всегда первая, это легко. Во-первых, нет никакой реальной необходимости использовать цикл или попытаться разделить строку на слова; достаточно простого glob-match с string match (который возвращает логическое значение) вполне достаточно.

# Reader 
set fd [open $filename] 
set closed [string match "closed*" [gets $fd]] 
close $fd 
# Writer 
set fd [open $filename w] 
if {$closed} { 
    puts $fd "closed" 
} else { 
    puts $fd "open" 
} 
close $fd 

И это все, что действительно требуется (для остальной части логики, чтобы превратить фрагменты в целую программу, конечно, за исключением), хотя вы можете сделать что-то вроде и писать дату изменение. (Конечно, это также будет сохранена в метаданных файла ... но это иллюстрация, хорошо?)

set timestamp [clock format [clock seconds]] 
if {$closed} { 
    puts $fd "closed - $timestamp" 
} else { 
    puts $fd "open - $timestamp" 
} 

И так далее.

Смежные вопросы