Как распарсить строчку
Автор Ul_Svetlana, 10 янв 2008 09:05
Сообщений в теме: 5
#1
Отправлено 10 января 2008 - 09:05
Добрый день!
Подскажите, пожалуйста, есть ли способ решить такую проблему: из ini-файла читается строка
[codebox]"c:\{WorkingFolder}\Input"[/codebox]
как сделать так, чтобы при работе скрипта в строку вместо {WorkingFolder} было вставлено значение этой переменной?
Большое спасибо
Подскажите, пожалуйста, есть ли способ решить такую проблему: из ini-файла читается строка
[codebox]"c:\{WorkingFolder}\Input"[/codebox]
как сделать так, чтобы при работе скрипта в строку вместо {WorkingFolder} было вставлено значение этой переменной?
Большое спасибо
#2
Отправлено 10 января 2008 - 09:32
Добрый день!
Подскажите, пожалуйста, есть ли способ решить такую проблему: из ini-файла читается строка"c:\{WorkingFolder}\Input"как сделать так, чтобы при работе скрипта в строку вместо {WorkingFolder} было вставлено значение этой переменной?
Большое спасибо
STRING sValue = "c:\{{WorkingFolder}\Input"
STRING sWorkingFolder = "Work"
sValue = StrTran( sValue , "{{WorkingFolder}" , sWorkingFolder )
Двойные фигурные скобки здесь только потому, чтобы замаскировать специальный символ {. Из ини-файла фигурная скобка считывается как есть.
Основной принцип моего существования — служение гуманистическим идеалам человечества.
#3
Отправлено 10 января 2008 - 09:51
Добрый день!
Подскажите, пожалуйста, есть ли способ решить такую проблему: из ini-файла читается строка"c:\{WorkingFolder}\Input"как сделать так, чтобы при работе скрипта в строку вместо {WorkingFolder} было вставлено значение этой переменной?
Большое спасибо
STRING sValue = "c:\{{WorkingFolder}\Input"
STRING sWorkingFolder = "Work"
sValue = StrTran( sValue , "{{WorkingFolder}" , sWorkingFolder )
Двойные фигурные скобки здесь только потому, чтобы замаскировать специальный символ {. Из ини-файла фигурная скобка считывается как есть.
К сожалению, этот код у меня не работает, пишет синтаксическую ошибку на месте "{{WorkingFolder}"
#4
Отправлено 10 января 2008 - 10:20
вот так надо ;)
STRING sValue = "c:\"{WorkingFolder}\Input" STRING sWorkingFolder = "Work" sValue = StrTran( sValue , ""{WorkingFolder}" , sWorkingFolder )еще можно (но это для адвансед юзеров и вообще не гарантируется корректная работа ;) )
STRING sValue = "c:\"{WorkingFolder}\Input" sValue = EvaluateString ("""{sValue}""")а вот вариант попроще но cработает не только для WorkingFolder :
STRING sValue = "c:\"{WorkingFolder}\Input" STRING sSubs = GetField(GetField(sValue, ""{", 2), "}", 1) sValue = StrTran (sValue, ""{{sSubs}}", @sSubs)
#5
Отправлено 10 января 2008 - 10:29
вот так надо ;)
опередил :)
ну на всякий случай приведу и свой пример с вычиткой из ини-файла
[ ] STRING sWorkingFolder = "temp" [ ] [ ] HINIFILE hIni = IniFileOpen ("C:\test.ini") [ ] STRING sINIVal = IniFileGetValue (hIni, "section", "val") [ ] STRING sNewValue = StrTran (sINIVal, ""{WorkingFolder}", sWorkingFolder) [ ] IniFileClose (hIni) [ ] [ ] Print(sNewValue)
тут надо заметить, что если необходимо работать со строкой, в которой встречается открывающая фигурная скобка, то ее надо экранировать двойной кавычкой. А в первом сообщении я просто опечатался, прошу прощения :)
Основной принцип моего существования — служение гуманистическим идеалам человечества.
#6
Отправлено 10 января 2008 - 12:11
Всем огромное спасибо! Все работает отлично!
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных