Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> поиск текста, поиск текста в файле
portos
сообщение 30.5.2016, 23:51
Сообщение #1


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



парни подскажите как изменить что бы в конце скрипта находить не следующее слово а следующую строку

load_array %phone D:\uopilot\33.txt //загрузили массив
set %result indexof (%phone noabs case (phone:)) //нашли все строки где есть слово Phone:

if size(%result) > 0
set #z %result[size(%result) 1]
log #z - номер последней строки, в которой нашёлся текст
else
log текст на найден
stop_script
end_if

init_arr %a (1) %phone[#z 1] //разбили нужную строку на элементы (если текстовый файл создан не пилотом)
//%a [1 1] - это будет первое слово из строки
//%a [1 2] - второе
//и т. д.
//перебираем строку и ищем слово phone:
for #i 1 size(%a [1])
if %a [1 #i] = phone:
set #y #i + 1
break
end_if
end_for
log следующее слово после phone: %a [1 #y]
set %b [1] %a [1 #y]
save_array %b D:\uopilot\34.txt //сохранили массив
stop_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 31.5.2016, 2:19
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Если:
Цитата
log #z - номер последней строки, в которой нашёлся текст

То #z + 1 это и будет следующая строка.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 31.5.2016, 4:56
Сообщение #3


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(cirus @ 31.5.2016, 1:19) *

Если:

То #z + 1 это и будет следующая строка.


Так же
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 31.5.2016, 10:54
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Так же

Что также? Если текст нашёлся, например, в 5 строке, то:
Код
set #z #z + 1
log #z    //это будет 6 строка.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 31.5.2016, 13:14
Сообщение #5


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



дошло , спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 4.6.2016, 20:56
Сообщение #6


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



get clipboard $a
write (D:\uopilot\1.js $a \n\r)

помогите решить , сохраняю в буфер текст из 500 строк , но в D:\uopilot\1.js вставляет только 50 строк.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 4.6.2016, 21:37
Сообщение #7


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



возможно нужно использовать по отдельности \n и \r
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.6.2016, 22:00
Сообщение #8


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



А помимо переносов содержимое полное? Возможно причина в каком-то ограничении на объем строковой переменной. Возможно имеет смысл буфер записывать в массив с параметром sting.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 4.6.2016, 22:12
Сообщение #9


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(DarkMaster @ 4.6.2016, 21:00) *

А помимо переносов содержимое полное? Возможно причина в каком-то ограничении на объем строковой переменной. Возможно имеет смысл буфер записывать в массив с параметром sting.


да вписывает полные строки , но только первые 50 (строк всего 500) , get clipboard $a копирует полный текст , вручную вставляется всё
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 4.6.2016, 22:20
Сообщение #10


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
get clipboard %a string
for #i 1 size(%a)
write (D:\uopilot\1.js %a [#i] \n\r)
end_for
stop_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.6.2016, 22:34
Сообщение #11


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
get clipboard $a копирует полный текст , вручную вставляется всё

он ничего не копирует. Он буфер сохраняет в переменную. Как вы приходите к выводу, что в переменной полный буфер?
Я уже сказал про массив, cirus привел пример для массива.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 4.6.2016, 22:44
Сообщение #12


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(cirus @ 4.6.2016, 21:20) *

Код
get clipboard %a string
for #i 1 size(%a)
write (D:\uopilot\1.js %a [#i] \n\r)
end_for
stop_script


так вставляет текст полностью . спс
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 5.6.2016, 7:46
Сообщение #13


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



ещё один вопрос , можно ли вписать текст в скрипт uopilot ... при перезагрузке окна меняется его имя
set #handleWin findwindow (имя) ,имена окон имеются в txt
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.6.2016, 8:42
Сообщение #14


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Можно искать не по имени, а по классу окна. Если не найдет пилот, есть плагин, в разделе плагины.
Либо подгружать файл с именами, файл со скриптом, менять имя в findwindow, сохранять срипт и потом загружать его же через load_script.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.6.2016, 9:28
Сообщение #15


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
Либо подгружать файл с именами, файл со скриптом, менять имя в findwindow, сохранять срипт и потом загружать его же через load_scrip

Либо подгрузить список и перебрать: что нашли - то и наше.
Как вариант можно искать по части имени окна. Т.е. если начало везде одинаковое, то можно обойтись этими символами.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 7.6.2016, 23:07
Сообщение #16


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



load_array %phone D:\uopilot\33.txt //загрузили массив
set %result indexof (%phone noabs case (phone:)) //нашли все строки где есть слово Phone:

if size(%result) > 0
set #z %result[size(%result) 1]
log #z - номер последней строки, в которой нашёлся текст
else
log текст на найден
stop_script
end_if

init_arr %a (1) %phone[#z 1] //разбили нужную строку на элементы (если текстовый файл создан не пилотом)
//%a [1 1] - это будет первое слово из строки
//%a [1 2] - второе
//и т. д.
//перебираем строку и ищем слово phone:
for #i 1 size(%a [1])
if %a [1 #i] = phone:
set #y #i + 1
break
end_if
end_for
log следующее слово после phone: %a [1 #y]
set %b [1] %a [1 #y]
save_array %b D:\uopilot\34.txt //сохранили массив
stop_script

вопросик , как можно заменить найденное слово на другое
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.6.2016, 2:21
Сообщение #17


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
вопросик , как можно заменить найденное слово на другое

Зависит от того где находится слово, в строке или элементе массива.
Если каждое слово элемент массива, то просто записать в нужный элемент массива новое слово.
Если слово в строке, то:
http://uopilot.tati.pro/index.php?title=String_replace
Или:
http://uopilot.tati.pro/index.php?title=Delete
http://uopilot.tati.pro/index.php?title=Insert
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 8.6.2016, 3:06
Сообщение #18


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(cirus @ 8.6.2016, 1:21) *

Зависит от того где находится слово, в строке или элементе массива.
Если каждое слово элемент массива, то просто записать в нужный элемент массива новое слово.
Если слово в строке, то:
http://uopilot.tati.pro/index.php?title=String_replace
Или:
http://uopilot.tati.pro/index.php?title=Delete
http://uopilot.tati.pro/index.php?title=Insert


это я всё перепробовал , нужное слово меняет в нужной строке , но при сохранение сохраняет только ту строку а не полный текст документа (несколько строк)
set $g string_replace ($ik $jek слово)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.6.2016, 3:22
Сообщение #19


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



От того что вы подменили слово в строковой переменной на массив никак не повлияло. Дописывайте эту строку в нужное место в массиве, а потом сохраняйте его.
Код
set %b [1 1] $g     //запишет содержимое переменной '$g' в первую строку массива.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 8.6.2016, 3:37
Сообщение #20


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(cirus @ 8.6.2016, 2:22) *

От того что вы подменили слово в строковой переменной на массив никак не повлияло. Дописывайте эту строку в нужное место в массиве, а потом сохраняйте его.
Код
set %b [1 1] $g     //запишет содержимое переменной '$g' в первую строку массива.



спасибо за помощь , но буду пробовать другие варианты
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 20:02
Designed by Nickostyle