AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

поиск и замена
Goto page Previous  1, 2, 3 ... 15, 16, 17
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
zverevkr



Joined: 13 Mar 2015
Posts: 2

PostPosted: Fri Mar 13, 2015 9:18 pm    Post subject: перемножение во множестве текстовых файлов не трогая текст Reply with quote

Скажите, можно ли решить следующую задачу используя akelpad и скрипты(плагины)?
Есть текстовые файлы(несколько десятков), в них есть по сотне записей с группами, в группах расписаны шансы на выпадение самой группы, а так же внутри каждой из групп есть индивидуальные шансы на каждый итем входящий в эту группу, нужно привести множество текстовых файлов, содержащих такие строки ко второму виду, где индивидуально раписаны шансы каждого итема. И этот шанс получен перемножением индивидуального шанса этого итема на шанс группы в которой этот итем находится. Не трогая остальной текст, содержащийся в файлах. Строки с групповыми шансами можно не удалять(если сделать это после, создав единую группу с шансом 100% на каждый список итемов).
Оригинал

некий текст
<group chance=«aa»>
<текст итема1" chance=«bb» />
</group>
<group chance=«cc»>
<текст итема2 " chance=«dd» />
<текст итема3 " chance=«ee» />
<текст итема4 " chance=«ff» />
<текст итема5 " chance=«gg» />
</group>
<group chance=«hh»>
<текст итема6 " chance=«ii» />
<текст итема7 " chance=«jj» />
</group>
некий текст

Пример

Сделать из записи вида:
group 1 =60%
item 1 = 20%
item 2 = 80%
group 2 = 50%
item 3 = 10%
item 4 = 30%
item 5 = 20%
item 6 = 2%
group 3 = 20%
item 7 = 90%
item 8 = 80%
Такую запись:
item1 = 12%
item2 = 48%
item3 = 5%
item4 = 15%
item5 = 10%
item6 = 1%
item7 = 18%
item8 = 16%

Результат:

некий текст
<group chance=«aa»>
<текст итема1 " chance=«aa*bb» />
</group>
<group chance=«cc»>
<текст итема2 " chance=«cc*dd» />
<текст итема3 " chance=«cc*ee» />
<текст итема4 " chance=«cc*ff» />
<текст итема5 " chance=«cc*gg» />
</group>
<group chance=«hh»>
<текст итема6 " chance=«hh*ii» />
<текст итема7 " chance=«hh*jj» />
</group>
некий текст

А если можно - такой результат

некий текст
<group chance=«100%»>
<текст итема1 " chance=«aa*bb» />
<текст итема2 " chance=«cc*dd» />
<текст итема3 " chance=«cc*ee» />
<текст итема4 " chance=«cc*ff» />
<текст итема5 " chance=«cc*gg» />
<текст итема6 " chance=«hh*ii» />
<текст итема7 " chance=«hh*jj» />
</group>
некий текст

При этом aa*bb должно быть непосредственно результатом перемножения.
Примерный алгоритм, возможно совершенно не верный, просто то, что мне пришло в голову..
0) переменная «групшанс» по умолчанию =1
1)читаю текст, нахожу фразу group chance, считываю всё, что после =" и до второй " в переменную «групшанс»
1.5)умножаю переменную «групшанс» на 0.01(так как надо значение в процентах перевести в значение в долях то есть 100% = 1, 50%=0.5, 0.5%=0.005 и тд)
2)далее умножаю встречающееся мне число, расположенное после " chance=" и до второй кавычки " на переменную «групшанс» и перезаписываю полученный результат вместо исходного числа
3)далее проверяю, нет ли строки group chance, если есть, то возвращаюсь к пункту 1), если нет, то к пункту 2), если же встречаю фразу </group> то записываю в переменную «групшанс» число 1
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 484
Location: Win7SP1x64, APx64

PostPosted: Fri Mar 13, 2015 11:14 pm    Post subject: Reply with quote

zverevkr
можно.
для этого даже акелпад не нужен, можно запускать эти скрипты (.js/.wsh/.bat) и без него.
Back to top
View user's profile Send private message
zverevkr



Joined: 13 Mar 2015
Posts: 2

PostPosted: Mon Mar 16, 2015 9:25 am    Post subject: Reply with quote

Drugmix wrote:
zverevkr
можно.
для этого даже акелпад не нужен, можно запускать эти скрипты (.js/.wsh/.bat) и без него.

а может кто-нибудь помочь составить такой скрипт?
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 484
Location: Win7SP1x64, APx64

PostPosted: Mon Mar 16, 2015 5:28 pm    Post subject: Reply with quote

zverevkr
может, но для этого лучше спросить на соответствующих данной тематике форумах.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2, 3 ... 15, 16, 17
Page 17 of 17

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group