Loop = (
{
Value = (
{
{
Key :
{
A = "B";
C = "D";
Class = (
{
section = "section_a";
Pairs = (
{
Name = "Ram";
Mark = "80";
},
{
Name = "Latha";
Mark = "70";
},
{
Name = "Mohan";
Mark = "90";
},
{
Name = "David";
Mark = "76";
} );
} );
Id = 1;
};
Absent :
{
DAYS = "Two days";
};
},
{
Key :
{
A = "B";
C = "D";
Class = (
{
section = "section_b";
Pairs = (
{
Name = "Ram";
Mark = "30";
},
{
Name = "Latha";
Mark = "45";
},
{
Name = "Mohan";
Mark = "100";
},
{
Name = "David";
Mark = "76";
} );
} );
Id = 2;
};
Absent :
{
DAYS = "Four days";
};
},
} );
} );
Я новичок в сценарии tcl. У меня есть текстовый файл в вышеуказанном формате. Используя скрипт tcl, я должен хранить строки (раздел, имя, отметка и отсутствующие дни) в разных переменных для хранения в файле csv. Я попробовал приведенный ниже код для поиска слова Key
set search "Key"
set file [open "Marks.txt" r]
while {[gets $file data] != -1} {
if {[string match *[string toupper $search]* [string toupper $data]] } {
puts "Found '$search' in the line '$data'"
} else {
puts "does not match"
}
}
. Он работает, чтобы найти слово key и печатать каждый раз, когда оно совпадает. Это работает для той строки, которая имеет слово Key
. Но здесь я хочу найти слово Loop
, тогда я хочу найти слово Key
в стороне l oop. Если он видит слово Key
, он должен скопировать некоторые переменные, присутствующие в l oop, в переменные. Слово Key
будет повторяться в файлах несколько раз. После слова Key
во всем файле будет присутствовать {..}
. Сценарий должен прочитать содержимое и сохранить его в некоторой переменной.
Exp: Сценарий должен найти слово Key
в текстовом файле, а затем найти раздел, если он присутствует, тогда section_b
необходимо храниться в переменной temp1
(exp. temp1
= section_a
), аналогично:
Если он видит Ram
, тогда Mark
ниже строки необходимо сохранить в temp2
(exp. temp2
= 80
).
Если он видит Latha
, тогда Mark
ниже строки необходимо сохранить в temp3
(exp. temp3
= 70
).
, тогда найдите id и необходимо сохранить значение 1, необходимо сохранить в temp4
(exp. temp4
= 1
).
затем Days
meed для хранения в temp5
(exp. temp5
= Two days
)
Эти временные значения необходимо записывать в файл CSV каждый раз, когда он видит слово Key в текстовом файле в следующем формате.
section Ram Latha id Days
Section_a 80 70 1 Two days
Section_b 30 45 2 Four days
Можете ли вы помочь мне в написание сценария tcl, чтобы получить это. Спасибо.