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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Проверка Текста В Файле
saraconor
сообщение 3.2.2011, 19:56
Сообщение #1


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



скажем есть файл F:\UOpilot\2.18.8\scripts\имя.txt
в этом файле строка Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\ТАНЯ\Клиент\АСК\для размышлений.pdf
как в пилоте выявить присутствие в этой строке имени "ТАНЯ" и задать соответствующую переменную при этом случае?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.2.2011, 3:05
Сообщение #2


***********

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



load_array %arr F:\UOpilot\2.18.8\scripts\имя.txt
set $arrForIf %arr [ 1 ]
if ТАНЯ >= $arrForIf
msg !!!
end_if
как то так

Сообщение отредактировал DarkMaster - 5.2.2011, 7:34


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


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



не работает. (даже если %arr поставить перед путем) может есть бат команда для этого?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.2.2011, 10:18
Сообщение #4


***********

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



для чего "этого"? что именно не работает?


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


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



скрипт никак не идентифицирует наличие слова "ТАНЯ", при любом раскладе выводит сообщение !!! даже если там будет "ЮЛЯ" вместо "ТАНЯ"
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.2.2011, 12:10
Сообщение #6


***********

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



>=


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


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



я пытаюсь логически завершить скрипт, который делает вот что:
1. копирует путь к файлу в сетевой папке сотрудника
2. вычленяет имя человека из пути к файлу ($имя)
3. в открытом окне аськи набирает ($имя), чтобы открылось окошко переписки с ним.

в общем ступор на 2 пункте,
может есть бат команда для сканирования текстового файла на наличие такого-то имени?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.2.2011, 18:29
Сообщение #8


***********

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



я ничего не понимаю. я тебе прислал исправления. чем они тебя не устраивают?

Сообщение отредактировал DarkMaster - 4.2.2011, 18:30


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


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(saraconor @ 4.2.2011, 16:35) *
может есть бат команда для сканирования текстового файла на наличие такого-то имени?

Код
C:\>find /?
Поиск текстовой строки в одном или нескольких файлах.

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "строка" [[диск:][путь]имя_файла[ ...]]

  /V         Вывод всех строк, НЕ содержащих заданную строку.
  /C         Вывод только общего числа строк, содержащих заданную строку.
  /N         Вывод номеров отображаемых строк.
  /OFF[LINE] Не пропускать файлы с установленным атрибутом "Автономный".
  /I         Поиск без учета регистра символов.
  "строка"   Искомая строка.
  [диск:][путь]имя_файла
             Один или несколько файлов, в которых выполняется поиск.

Если путь не задан, команда FIND выполняет поиск в тексте консоли
либо в тексте, переданном по конвейеру другой командой.

попробуйте


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 5.2.2011, 0:49
Сообщение #10


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



Цитата(DarkMaster @ 4.2.2011, 19:29) *

я ничего не понимаю. я тебе прислал исправления. чем они тебя не устраивают?

твой скрипт клинит на первой-же строке. ты %arr поставил зачем-то в конце, а надо было в начале.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 5.2.2011, 1:00
Сообщение #11


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



Цитата(DarkMaster @ 4.2.2011, 19:29) *

я ничего не понимаю. я тебе прислал исправления. чем они тебя не устраивают?

тем что не работают твои исправления. во первых в первой-же строке косяк, переменная массива в конце указана, а надо в начале (без этого твой скрипт дальше не хочет даже двигаться), далее если даже поставить переменную массива как надо, все равно толку не будет, ну скопируется в строковую переменную текст из файла, ну сравнится -больше, либо равный слову ТАНЯ, это ничего ровным счетом не даст, и задачу не решает. повторюсь: даже если заменить слово ТАНЯ на другое, ничего не изменится, скрипт не реагирует на это слово в тексте и все тут.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 5.2.2011, 2:15
Сообщение #12


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



Цитата(Zeleax @ 4.2.2011, 21:55) *

Код
C:\>find /?
Поиск текстовой строки в одном или нескольких файлах.

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "строка" [[диск:][путь]имя_файла[ ...]]

  /V         Вывод всех строк, НЕ содержащих заданную строку.
  /C         Вывод только общего числа строк, содержащих заданную строку.
  /N         Вывод номеров отображаемых строк.
  /OFF[LINE] Не пропускать файлы с установленным атрибутом "Автономный".
  /I         Поиск без учета регистра символов.
  "строка"   Искомая строка.
  [диск:][путь]имя_файла
             Один или несколько файлов, в которых выполняется поиск.

Если путь не задан, команда FIND выполняет поиск в тексте консоли
либо в тексте, переданном по конвейеру другой командой.

попробуйте

find /C /I "ТАНЯ" E:\soft\Programing\UOpilot_v.2.18.4\2.18.8\scripts\путь.txt
ничего не выходит, а даже еслиб чего и получилось непонятно как выводить это в переменную.
помогите пожалуйсто.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.2.2011, 7:34
Сообщение #13


***********

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



set $arrForIf rthrthnfy
if ТАНЯ >= $arrForIf
msg !!!
end_if

set $arrForIf rthrthnfyтанятектнет
if ТАНЯ >= $arrForIf
msg !!!
end_if
все работает


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


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



DarkMaster
Работает, только если все буквы в "таня" маленькие. Если же хоть одна большая - не работает
пыптаня - работает
аТаняф или фтАня - не работает

З.Ы.: кстати, не увидел операцию поиска в тестовой строке в описании языка. Там такое есть вообще? Если нет- може создать еще раздел в полезных советах, посвященный работе со строками? Это очень важно, имхо


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 5.2.2011, 10:34
Сообщение #15


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(saraconor @ 3.2.2011, 18:56) *

скажем есть файл F:\UOpilot\2.18.8\scripts\имя.txt
в этом файле строка Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\ТАНЯ\Клиент\АСК\для размышлений.pdf
как в пилоте выявить присутствие в этой строке имени "ТАНЯ" и задать соответствующую переменную при этом случае?

Вернемся в самое начало ))
Итак, насколько я понял:
1) нужно определить, что в файле F:\UOpilot\2.18.8\scripts\имя.txt есть строка содержащая слово "ТАНЯ"

Вопросы:
1) строка в файле одна или много?
2) искать строку именно со словом ТАНЯ или же просто нужно в 1-й же строке файла вычленить имя, которое идет за текстом "Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\" ?
3) в какую переменную (например) и что именно вы хотите "занести"?

Если я что-то не так понял или спросил - поправьте

По поводу команды find:
Файл 1.txt содержит текст на русском языке (в формате Unicode - это важно, иначе find не найдет! ):
Код
ааааааааа
ббббббббб
ббТаняббб
ввввввввв
ггггггггг


Если открыть командное окно выполнив "cmd" в Windows, а в нем выполнить команду
find "Таня" d:\Temp\1.txt
то увидим:

Код
---------- D:\TEMP\1.TXT
ббТаняббб


но нам это не годится для анализа, т.к. результат работы find нужно еще как-то передать в пилот.
Поэтому используем немного в другом виде:
find "Таня" d:\Temp\1.txt > 2.txt

В этом случае все результаты работы find будут перенаправлены в файл 2.txt.
В нем появится текст:
Код
---------- D:\TEMP\1.TXT
ЎЎ’ ­пЎЎЎ


Тоже не сахар (проблема с кодировками...), но т.к. присутствует 2-я строка, хоть и нечитабельная, то это значит, что слово Таня найдено в файле.
А данные можно прочитать пилотом в массив уже из файла 2.txt (интересует именно вторая строка)

Не знаю, пригодится ли результат в таком виде...


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.2.2011, 11:35
Сообщение #16


***********

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



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


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


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



Цитата(Zeleax @ 5.2.2011, 11:34) *

Вернемся в самое начало ))
Итак, насколько я понял:
1) нужно определить, что в файле F:\UOpilot\2.18.8\scripts\имя.txt есть строка содержащая слово "ТАНЯ"

Вопросы:
1) строка в файле одна или много?
2) искать строку именно со словом ТАНЯ или же просто нужно в 1-й же строке файла вычленить имя, которое идет за текстом "Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\" ?
3) в какую переменную (например) и что именно вы хотите "занести"?

Если я что-то не так понял или спросил - поправьте

По поводу команды find:
Файл 1.txt содержит текст на русском языке (в формате Unicode - это важно, иначе find не найдет! ):
Код
ааааааааа
ббббббббб
ббТаняббб
ввввввввв
ггггггггг


Если открыть командное окно выполнив "cmd" в Windows, а в нем выполнить команду
find "Таня" d:\Temp\1.txt
то увидим:

Код
---------- D:\TEMP\1.TXT
ббТаняббб


но нам это не годится для анализа, т.к. результат работы find нужно еще как-то передать в пилот.
Поэтому используем немного в другом виде:
find "Таня" d:\Temp\1.txt > 2.txt

В этом случае все результаты работы find будут перенаправлены в файл 2.txt.
В нем появится текст:
Код
---------- D:\TEMP\1.TXT
ЎЎ’ ­пЎЎЎ


Тоже не сахар (проблема с кодировками...), но т.к. присутствует 2-я строка, хоть и нечитабельная, то это значит, что слово Таня найдено в файле.
А данные можно прочитать пилотом в массив уже из файла 2.txt (интересует именно вторая строка)

Не знаю, пригодится ли результат в таком виде...


к сожалению этот скрипт находит всю строку целиком, а нужно чтобы нашел толко 1 слово в ней.
а есть-ли возможность поменять регистр букв в файле? (похоже нашел решение http://www.rvsn2.narod.ru/download/regtxt.zip буду пытать дальше)

Цитата(DarkMaster @ 5.2.2011, 11:34) *

set $arrForIf rthrthnfy
if ТАНЯ >= $arrForIf
msg !!!
end_if

set $arrForIf rthrthnfyтанятектнет
if ТАНЯ >= $arrForIf
msg !!!
end_if
все работает


set $arrForIf Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\ЮЛЯ\Клиент\АСК\для размышлений.pdf
if ТАНЯ >= $arrForIf
msg ???
end_if

set $arrForIf Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\ТАНЯ\Клиент\АСК\для размышлений.pdf
if ТАНЯ >= $arrForIf
msg !!!
end_if
не работает

Цитата(Zeleax @ 5.2.2011, 11:34) *

1) строка в файле одна или много?
2) искать строку именно со словом ТАНЯ или же просто нужно в 1-й же строке файла вычленить имя, которое идет за текстом "Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\" ?
3) в какую переменную (например) и что именно вы хотите "занести"?


1 - одна единственная строка в файле: Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\ТАНЯ\Клиент\АСК\для размышлений.pdf
2 - нужно вычленить только слово ТАНЯ из всего текста
3 - при обнаружении слово ТАНЯ в строке #P = 1, при обнаружении ЮЛЯ в строке #P = 2, итд. но в иделале хорошо было-бы еслиб файл очистился, оставив в себе только слово с именем.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 5.2.2011, 12:45
Сообщение #18


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



saraconor
Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\ТАНЯ\Клиент\АСК\для размышлений.pdf
1) выделенная часть текста в начале строки всегда одна и та же, или разные бывают?


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 5.2.2011, 13:58
Сообщение #19


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



Цитата(Zeleax @ 5.2.2011, 13:45) *

saraconor
Z:\__РАБОТА!!!!\ТЕКУЩАЯ РАБОТА\ТАНЯ\Клиент\АСК\для размышлений.pdf
1) выделенная часть текста в начале строки всегда одна и та же, или разные бывают?

бывают разные но количество их ограничего (5-6 не больше)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 5.2.2011, 14:28
Сообщение #20


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Короче, могу написать отдельную программку, которую можно вызвать из пилота. Программа будет проверять первую строку 1-го текстового файла, искать в нём одно из имен перечисленных в другом файле и сохранять результат анализа в буфер обмена.
А из буфера обмена вы пилотом спокойно прочитаете результат. Потом делайте с ним что хотите.
Цена вопроса 5$. Можно пополнением счета телефона (если вы в Украине), можно через вебмани. Если что пишите личное сообщение


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

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

 

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