Zireael |
Отправлено: 01 Декабря, 2019 - 12:45:08
|
Эксперт
Покинул форум
Сообщений всего: 4463
Дата рег-ции: Нояб. 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]);
}
}
} |
|
|
007wan |
Отправлено: 01 Декабря, 2019 - 14:06:15
|
Эксперт
Покинул форум
Сообщений всего: 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]);
}
}
} Спасибо! |
|
|
007wan |
Отправлено: 07 Декабря, 2019 - 19:08:23
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: заменить его
regexreplace. не совсем понимаю какие флаги мне понадобятся
^
|
Из того текста, что я давал ранее нужно найти этот текст(из всего теуста. Например, найдет"Visual Window: False" если он найден(отдельная переменная) , то заменить на "Visual Window: True", но таких же несколько... Встает вопрос о том "как заменить не все такие повторяющиеся фрагменты, а например, последний или первый только(управлять переменной - индекс) ,как то"
Этот пример ответит на сразу 3 вопроса. |
|
|
007wan |
Отправлено: 08 Декабря, 2019 - 15:21:02
|
Эксперт
Покинул форум
Сообщений всего: 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 |
|
|
007wan |
Отправлено: 08 Декабря, 2019 - 16:45:41
|
Эксперт
Покинул форум
Сообщений всего: 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};";
И зачем хранить данные в строке? Используй массивы. И как? |
|
|
007wan |
Отправлено: 09 Декабря, 2019 - 10:46:06
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: И зачем хранить данные в строке? Используй массивы. Я массивы и использую, а сохраняться они будут по массивно каждая...
Всмысле в массивах я не понимаю не много...
Текст передается в буфер для того, что бы другая программа его считывала(другая exe) и выполняла нужные действия.
----
Ну пожалуйста можно код.
Текст (Отобразить) Цитата: 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] элементом(в данном случаи он является вторым по счёту) на текст "Visual Window: True". |
|
|
|