Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

3 876 Posts in 868 Topics- by 723 Members - Latest Member: tablarock

22 May 2012, 18:17
Select Language English | Russian ru | German
Main PageIRC Client KVIrc forumRussian talksСкриптингВопросы по основам KVSзамена по таблице
Pages: [1]
Print
Author Topic: замена по таблице  (Read 7780 times)
0 Members and 2 Guests are viewing this topic.
Hadros
Новичок
*

Репутация: 7
Gender: Male
Posts: 32


250254035
View Profile
« on: 25 September 2007, 22:42 »

Есть ли в KVS способ заменить в строке определённые символы на определённые другие?
Или как сделать, чтобы не терялись русские буквы в этом:
Code:
%a="abcde"
perl.begin
$a=KVIrc::getLocal("a");
$a=~tr/[ba]/[щЛ]/;
KVIrc::setLocal("a",$a);
perl.end
echo %a
Logged

Eru shitteiru ka shinigami wa ringo shika tabenai
runkoff
Постоялец
***

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #1 on: 25 September 2007, 22:55 »

Code:
echo $str.replace("Есть ли в KVS способ заменить в строке определённые символы на определённые другие?","другие","определённые символы")

?
Logged

Hadros
Новичок
*

Репутация: 7
Gender: Male
Posts: 32


250254035
View Profile
« Reply #2 on: 26 September 2007, 17:58 »

нет. это замена подстроки в строке. А надо например заменить все шестёрки на букву "б", все девятки на букву "я" и т.д. За один раз. Чтобы не вызывать для каждой буквы отдельную функцию
Logged

Eru shitteiru ka shinigami wa ringo shika tabenai
Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« Reply #3 on: 26 September 2007, 19:15 »

Code:
%str = "кака9 69ка"
%str=~ tr/69/бя/
echo %str
Logged
runkoff
Постоялец
***

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #4 on: 26 September 2007, 21:07 »

вспомнился скрипт "неправильная раскладка", там был двумерный массив символов для одной и другой раскдаки и конвертируемая строка перебиралась посимвольно. а получается что все это можно заменить на
Code:
%a =~ t/qwertyuiop[]asdfghjkl;'zxcvbnm,./йцукенгшщзхъфывапролджэячсмитьбю/
%a =~ t/QWERTYUIOP{}ASDFGHJKL;'ZXCVBNM,./ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ/
в одну сторону, и
Code:
%a =~ t/йцукенгшщзхъфывапролджэячсмитьбю/qwertyuiop[]asdfghjkl;'zxcvbnm,./
%a =~ t/ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ/QWERTYUIOP{}ASDFGHJKL;'ZXCVBNM,./
вдругую сторону.
удобно.
Logged

Kemuri
Новичок
*

Репутация: 0
Gender: Male
Posts: 8


280569368
View Profile
« Reply #5 on: 10 October 2007, 15:58 »

а замену не по буквам, а сразу по слогам как сделать? что бы определенные слоги заменялись на заданные (антимат своеобразный)
« Last Edit: 10 October 2007, 16:11 by Kemuri » Logged

runkoff
Постоялец
***

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #6 on: 10 October 2007, 17:27 »

а замену не по буквам, а сразу по слогам как сделать? что бы определенные слоги заменялись на заданные (антимат своеобразный)
вот попробуй
Code:
%a =  чтобы матом не материца сделал автозамену матерных слов
echo $str.replace(%a,"*ОЙ*","мат")
Code:
%a =  чтобы матом не материца сделал автозамену матерных слов
%a =~ s/мат/*ОЙ*/g
echo %a
« Last Edit: 10 October 2007, 17:32 by runkoff » Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic