Цитата(dron4938 @ 24.6.2019, 10:37)
1)заменить все русские буквы в тексте на нижний регистр, затем
2)найти в тексте все строки содержащие русские буквы и заменить первую русскую букву на заглавную?
текст
Код
рОгаЛИК rtrt
AppEarance
ПОЗитиф
Save as a screenshot прИВет
GameStart
I can not start the game right now.
Save UI location
ЗамЕтка
Whether to save the UI location
Do you want to save the layout?
Initialize UI location
ЗамЕтка
Whether the UI location is initialized
Reset layouts?
Для тренировки решил запилить это на пилоте.
Код
load_array %a C:\1234.txt
set delimiter ' '
for #i 1 size(%a)
set $e %a[#i]
set $e trim($e)
set #s string_count(" " $e) + 1
for #j 1 #s
get word $a #j $e
set $a1 ord($a)
if_not $a1 > 64 and $a1 < 123
set $b string_lower($a)
set $c copy($b 1 1)
set $c1 string_upper($c)
set $b string_replace($b $c $c1)
set %a[#i #j] $b
else
set %a[#i #j] $a
end_if
end_for
end_for
save_array %a C:\12345.txt
end_script
Все получилось и работает, но...
Я с таким количеством глюков столкнулся,
cirus, жду помощи =)
Поехали:
1. В строке
6 будет неверно считать если вместо #s написать size(%a[#i]). Пришлось дописывать строку
5.
2. Запускаю, в логе все идеально. Как бы.. В лог пишет все четко как надо, а в файле 12345.txt вместо обычных пробелов - какие-то километровые(похоже табуляция). Кстати,оказывается, это не первый случай. В
этом скрипте так же в логе все красиво, а если мы %result сохраним в файл, то опять будут огромные пробелы. Попробуй сам запустить.
Log
Рогалик rtrt
AppEarance
Позитиф
Save as a screenshot Привет
GameStart
I can not start the game right now
Save UI location
Заметка
Whether to save the UI location
Do you want to save the layout?
Initialize UI location
Заметка
Whether the UI location is initialized
Reset layouts?
12345.txt
Код
Рогалик rtrt
AppEarance
Позитиф
Save as a screenshot Привет
GameStart
I can not start the game right now
Save UI location
Заметка
Whether to save the UI location
Do you want to save the layout?
Initialize UI location
Заметка
Whether the UI location is initialized
Reset layouts?
3. Еще одна мистика. По идее,
15 и
16 строки в коде не нужны. Но, после
#i1 и
#j2 результат должен быть: Рогалик rtrt. Но, результат : Рогалик, без второго слова. Проверил вот так:
init_arr %a (1) test qwe
set delimiter ' '
set #i 1
set #j 1
set $b рогалик
log ДО: %a[#i] // Log- ДО: test qwe
set %a[#i #j] $b
log ПОСЛЕ: %a[#i] // Log- ПОСЛЕ: рогалик qwe
и все норм.
Замена одного из слов в строке массива, не трогает остальные слова. Там же такое не катит..
В итоге скрипт полностью рабочий, но над этими моментами я пол дня голову ломаю (IMG:
https://forum.uokit.com/style_emoticons/default/wacko.gif)