Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (25): В начало « 10 11 12 13 [14] 15 16 17 18 » В конец    

> Описание: Поиск и замена текста по шаблонам регулярных выражений
Zireael
Отправлено: 01 Декабря, 2019 - 12:45:08
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
string s = "My Dialog{Editing Writes: 0};"+formatic(13)+formatic(10)+
"Bot One{Start_Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Two{Start Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Three{Start Script: False|Visual Window: False};";

//messagebox(s);
string row[99], text_box, text[99];
int count_box=regexsearch(sizearray(row), #row[0], s, "[^\r\n]+", MULTILINE);
messagebox(count_box);
for(int i=0; i<count_box; i++)
{
if(regexsearch(1, #text_box, row[i], "^[^\{]+"))
{
messagebox(text_box);
regexreplace(1, #row[i], row[i], text_box, "");
regexreplace(1, #row[i], row[i], ";$", "");

int count_text=regexsearch(sizearray(text), #text[0], row[i], "[^\{\}\|]+");
for(int j=0; j<count_text; j++)
{
messagebox(text[j]);
}
}
}
 
 Top
007wan
Отправлено: 01 Декабря, 2019 - 14:06:15
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
CODE:
string s = "My Dialog{Editing Writes: 0};"+formatic(13)+formatic(10)+
"Bot One{Start_Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Two{Start Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Three{Start Script: False|Visual Window: False};";

//messagebox(s);
string row[99], text_box, text[99];
int count_box=regexsearch(sizearray(row), #row[0], s, "[^\r\n]+", MULTILINE);
messagebox(count_box);
for(int i=0; i<count_box; i++)
{
if(regexsearch(1, #text_box, row[i], "^[^\{]+"))
{
messagebox(text_box);
regexreplace(1, #row[i], row[i], text_box, "");
regexreplace(1, #row[i], row[i], ";$", "");

int count_text=regexsearch(sizearray(text), #text[0], row[i], "[^\{\}\|]+");
for(int j=0; j<count_text; j++)
{
messagebox(text[j]);
}
}
}
Спасибо!
 
 Top
007wan
Отправлено: 07 Декабря, 2019 - 13:47:17
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




__________
Есть текст:
CODE:
string s = "My Dialog{Editing Writes: 0};"+formatic(13)+formatic(10)+
"Bot One{Start_Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Two{Start Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Three{Start Script: False|Visual Window: False};";

Как мне из этого текста "вырвать" кусок, например, "Editing Writes: 0" или любой другой, который укажу и заменить его нарпимер на "Editing Writes: 1".

Предыдущий код только все по фрагментам раскладывает, а я хочу не по фрагментом собирать и разбирать текст, а просто заменить существующий текст, при условии, что он уже есть(узнать есть ли он на том месте или нету"
 
 Top
Zireael
Отправлено: 07 Декабря, 2019 - 17:19:01
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
заменить его

regexreplace.
 
 Top
007wan
Отправлено: 07 Декабря, 2019 - 19:08:23
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
 Цитата:
заменить его

regexreplace.
не совсем понимаю какие флаги мне понадобятся

^
|
Из того текста, что я давал ранее нужно найти этот текст(из всего теуста. Например, найдет"Visual Window: False" если он найден(отдельная переменная) , то заменить на "Visual Window: True", но таких же несколько... Встает вопрос о том "как заменить не все такие повторяющиеся фрагменты, а например, последний или первый только(управлять переменной - индекс) ,как то"

Этот пример ответит на сразу 3 вопроса.
 
 Top
007wan
Отправлено: 08 Декабря, 2019 - 15:21:02
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Можно пример, как найти фразу во всем тексте если найден(-ы), то указать сколько таких найдено и потом заменить такой [1] элемент.

Пример:
Текст:
 Цитата:
string s = "My Dialog{Editing Writes: 0};"+formatic(13)+formatic(10)+
"Bot One{Start_Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Two{Start Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Three{Start Script: False|Visual Window: False};";

Найти:
"Visual Window: False ", все посчитать сколько их.
Заменить [1] такой фрагмент, по факту сдесь их 3, найдено тоже 3, но индексы всегда начинаются с [0] - первый соотвественно и [2] последний.
Результат:
Заменит такой текст, где Bot Two
(Добавление)
 Цитата:
Заменить [1] такой фрагмент
на Visual Window: True
 
 Top
Zireael
Отправлено: 08 Декабря, 2019 - 16:16:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
string s = "My Dialog{Editing Writes: 0};"+formatic(13)+formatic(10)+
"Bot One{Start_Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Two{Start Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Three{Start Script: False|Visual Window: False};";

И зачем хранить данные в строке? Используй массивы.
 
 Top
007wan
Отправлено: 08 Декабря, 2019 - 16:45:41
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
 Цитата:
string s = "My Dialog{Editing Writes: 0};"+formatic(13)+formatic(10)+
"Bot One{Start_Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Two{Start Script: False|Visual Window: False};"+formatic(13)+formatic(10)+
"Bot Three{Start Script: False|Visual Window: False};";

И зачем хранить данные в строке? Используй массивы.
И как?
 
 Top
007wan
Отправлено: 09 Декабря, 2019 - 10:46:06
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
И зачем хранить данные в строке? Используй массивы.
Я массивы и использую, а сохраняться они будут по массивно каждая...

Всмысле в массивах я не понимаю не много...

Текст передается в буфер для того, что бы другая программа его считывала(другая exe) и выполняла нужные действия.
----
Ну пожалуйста можно код.
Текст (Отобразить)

Принцип работы:
Ищет текст, который укажу. Для примера возьмем "Visual Window: False"
-Если такой существует и их больше одного, то заменить такой текст с [1] элементом(в данном случаи он является вторым по счёту) на текст "Visual Window: True".
 
 Top
Zireael
Отправлено: 09 Декабря, 2019 - 11:53:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
то заменить такой текст с [1] элементом(в данном случаи он является вторым по счёту) на текст "Visual Window: True".

Допустим заменили второе совпадение, т. е. останется два "Visual Window: False" , для первого и для третьего Bot. Т. е. в следующий раз указав [1] нужно будет заменить "Visual Window: False" для Bot Three?
 
 Top
Страниц (25): В начало « 10 11 12 13 [14] 15 16 17 18 » В конец
Сейчас эту тему просматривают: 7 (гостей: 7, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by