Вверх ↑
Этот топик читают: Гость
Ответов: 952
Рейтинг: 4
#1: 2011-05-18 17:19:04 ЛС | профиль | цитата
Мыло-мочало, начинай сначала.
Есть ини-файлик, в нём надо заменить 1 слово. Встречается оно там 1 раз.
Найти, заменить, сохранить файлик.

Add(SearchInFile,12592667,217,203)
{
FileName="WINCMD.INI"
Text="[Associations]"
Point(String)
Point(NumStr)
link(onSearch,5653364:doReplace,[(271,216)(271,209)])
}
Add(Replace,5653364,294,203)
{
SubStr="[Associations]"
DestStr="[-Associations]"
link(onReplace,10721700:doReplace,[(338,209)(338,297)(233,297)(233,384)])
link(Str,12592667:String,[(300,191)(262,191)(262,247)(223,247)])
}
Add(StrList,10721700,245,336)
{
FileName="WINCMD.INI"
Point(onGetString)
Point(doReplace)
}


------------ Дoбавленo в 17.19:
В этой схеме что-то не так.
карма: 0

0
Ответов: 1321
Рейтинг: 37
#2: 2011-05-18 17:23:32 ЛС | профиль | цитата
code_24017.txt
карма: 0

0
файлы: 1code_24017.txt [475B] [376]
Ответов: 3889
Рейтинг: 362
#3: 2011-05-18 17:53:17 ЛС | профиль | цитата

Add(MainForm,7771141,357,266)
{
link(onCreate,14820096:doEvent1,[])
}
Add(Replace,5653364,469,273)
{
SubStr="[sect2]"
DestStr="[hello]"
link(onReplace,4034052:doText,[])
link(Str,4034052:Text,[(475,236)(588,236)(588,304)(552,304)])
}
Add(StrList,4034052,546,252)
{
FileName="WINCMD.INI"
}
Add(Hub,14820096,413,280)
{
OutCount=3
link(onEvent1,4034052:doLoad,[])
link(onEvent2,5653364:doReplace,[(459,293)(459,279)])
link(onEvent3,4034052:doSave,[(463,300)(463,313)(510,313)(510,293)])
}


карма: 1

0
Ответов: 952
Рейтинг: 4
#4: 2011-05-18 20:26:01 ЛС | профиль | цитата
Жуткая штука.
1 пример отказался работать.
2 пример затер все строки в ини-файле. ничего кроме символа "квадратик" не осталось
карма: 0

0
Ответов: 3889
Рейтинг: 362
#5: 2011-05-18 20:47:27 ЛС | профиль | цитата
user_asm, Мой пример проверен (с другими substr / deststr) на реальном ini коммандера (Windows Tablet PC 2005 = XP 32 bit SP3), абсолютно успешно, что я делаю не так? Какая кодировка Вашего wincmd.ini? Если UTF-8 (???), то поставьте конверторы до и после списка строк.
карма: 1

0
Ответов: 952
Рейтинг: 4
#6: 2011-05-18 21:09:58 ЛС | профиль | цитата
Ну как бы врать у меня причин нет. Говорю как есть. Оба примера не сработали. На Вин7 по крайней мере.
Завтра опробую на ХР. Хотя мне то надо что бы воркало на любой из семейства форточек.
карма: 0

0
Ответов: 3889
Рейтинг: 362
#7: 2011-05-18 21:35:34 ЛС | профиль | цитата
Универсальная схема замены участка текстового файла + рабочий exe.
Страховка от различий в версии конструктора.
карма: 1

0
файлы: 1project1.7z [31.5KB] [273]
Ответов: 952
Рейтинг: 4
#8: 2011-05-18 21:42:31 ЛС | профиль | цитата
Вот что вышло после использования.
http://forum.hiasm.com/forum_serv.php?q=56&id=2423
карма: 0

0
Ответов: 3889
Рейтинг: 362
#9: 2011-05-18 21:51:10 ЛС | профиль | цитата
Если это после моего Project1.exe, хотелось бы видеть файл "до".
А как поступает с "подставными" ini, сделанными вручную?
карма: 1

0
Ответов: 952
Рейтинг: 4
#10: 2011-05-18 22:05:12 ЛС | профиль | цитата
Вручную я и не делал. Взял оригинальный и кинул в папку рядом с твоим ехе. Так что смысла высылать свой ини я думаю нет - твой такой же.
Хотя сейчас вырежу лишнее и скину.
------------ Дoбавленo в 22.05:
Самое интересное - неужели никто ни разу не задавался такой целью, замены в файле....
карма: 0

0
Ответов: 3889
Рейтинг: 362
#11: 2011-05-18 22:06:40 ЛС | профиль | цитата
Это не обязательно, если кодировка та же. Попробуйте в простейшем файле из пары строчек замену произвести. Какой разрядности Ваша ОС?
карма: 1

0
Ответов: 952
Рейтинг: 4
#12: 2011-05-18 22:08:32 ЛС | профиль | цитата
http://forum.hiasm.com/forum_serv.php?q=56&id=2424
------------ Дoбавленo в 22.08:
Windows Seven Ultimate x86
карма: 0

0
Ответов: 3889
Рейтинг: 362
#13: 2011-05-18 22:11:38 ЛС | профиль | цитата
Целью задавались, как раз пример-то работает на моих ANSI CP1251 (WIN) файлах. Но у меня Tablet PC. Я не зря задаю наводящие вопросы, не на все получен чёткий ответ.
------------ Дoбавленo в 22.11:
Ну ясен пень, я был прав. У Вас кодировка не та. Список строк и поиск не рассчитаны на UNICODE. Надо преобразовывать. Тогда выгода от StrList снижается, при желании можно работать и с файловым потоком.
карма: 1

0
Ответов: 952
Рейтинг: 4
#14: 2011-05-18 22:22:20 ЛС | профиль | цитата
Преобразовывать весь файл и потом обратный процесс?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#15: 2011-05-18 22:25:22 ЛС | профиль | цитата
user_asm писал(а):
Преобразовывать весь файл и потом обратный процесс?
Или бинарный поиск, недавно обсуждался.
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)