|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Поиск числа в .txt |
|
[решено] Поиск числа в .txt
|
Пользователь Сообщения: 58 |
Помогите настроить поиск. Не знаю, как задать число в стринге+ чтоб заносился в масив.
Ищу в .txt стринг, в котором должнобыть число(1-2500), с обеих сторон обхваченное текстом. Пример: $aString = String("число [Не могу задать] помогите") $sRead = FileRead($file) $array = StringRegExp($sRead, $aString, 1) При смене количества знаков не меняется ничего ("число 53 помогите") ("число 153 помогите") ("число 1153 помогите") |
|
Отправлено: 18:52, 05-07-2009 |
![]() Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать Ээээ... Практически ничего не понятно мне из этого. Возможно, догадался я в чём смысл, а возможно и не догадался:
|
------- Отправлено: 19:37, 05-07-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать вариант:
#include <Array.au3> Local $sFilePath = @ScriptDir & '\test.txt' Local $sFileText = @CRLF & FileRead($sFilePath) & @CRLF ;~ $sFileText = StringRegExpReplace ($sFile2Text, "(?:\r\n|[\r\n])", @CRLF); нормализация, может и не нужна Local $aPattern = String("(?s)(?U).+\n([^\r\n]+\d+[^\r\n]+)\r.+") Local $aResult = StringRegExp($sFileText, $aPattern, 3) _ArrayDisplay($aResult) |
------- Последний раз редактировалось proxy, 05-07-2009 в 20:17. Отправлено: 20:00, 05-07-2009 | #3 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Sylver Dragon,
Понял ты меня правильно, только вот диапазон ещё 1-2500 хочу задать? З.Ы. Приношу извинения, хотел как можно понятнее поставить вопрос proxy, Спасибо. Думаю именно это мне и нужно. Выручил |
Отправлено: 20:02, 05-07-2009 | #4 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Не много поспешил с выводами. Проблема осталась не решена.
Ищу стринг с конкретным текстом, диапазоном цифр и занесением цифр в массив. Пример: Текст Жираф весит 1725 киллограм Первый слон весит 2730 киллограм Второй слон весит 2350 киллограм Не получается задать поиск числа в заданном диапазоне, чтобы только оно заносилось в массив: String("слон весит [1-2500] киллограм") , а в массив "2350" Помогите пожалуйста. |
|
Отправлено: 00:12, 06-07-2009 | #5 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать #include <Array.au3> Local $sFilePath = @ScriptDir & '\test.txt' Local $sFileText = @CRLF & FileRead($sFilePath) & @CRLF ;~ $sFileText = StringRegExpReplace ($sFile2Text, "(?:\r\n|[\r\n])", @CRLF); нормализация, может и не нужна Local $aPattern = String("(?s)(?U).+\n[^\r\n]+(\d)+[^\r\n]+\r.+") Local $aResult = StringRegExp($sFileText, $aPattern, 3) _ArrayDisplay($aResult, 'Результат всех цифр') Local $i, $aResultLimit[1] Local $iLimit = 2500 $aResultLimit[0] = 0 For $i=0 To UBound($aResult)-1 If $aResult[$i] <= $iLimit Then $aResultLimit[0] += 1 ReDim $aResultLimit[$aResultLimit[0]+1] $aResultLimit[$aResultLimit[0]] = $aResult[$i] EndIf Next _ArrayDisplay($aResultLimit, 'Результат с ограничением') ;~ $aResultLimit[0] - колличество найденных результатов, если нет, то 0 |
------- Отправлено: 01:06, 06-07-2009 | #6 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать proxy,
Спасибо тебе за старания и помощ. Суть кода понял. Буду тестить P.S. Проблема решена |
Отправлено: 01:17, 06-07-2009 | #7 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 01:22, 06-07-2009 | #8 |
Старожил Сообщения: 247
|
решено
|
Последний раз редактировалось Centrinar, 23-07-2010 в 15:49. Отправлено: 15:37, 23-07-2010 | #9 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Не флужу,
Можно еще так попробовать: #include <Array.au3> $sString = 'Жираф весит 1725 кг,' & @CRLF & _ 'Первый слон весит 2730 кг,' & @CRLF & _ 'Второй слон весит 2350 кг,' & @CRLF & _ 'Третий слон весит 2150 кг,' & @CRLF & _ 'Четвертый слон весит 2850 кг,' & @CRLF & _ 'Пятый слон весит 2250 кг,' & @CRLF & _ 'Мешок весит 50 кг,' & @CRLF & _ 'Я вешу 100 кг, Собака весит 20 кг.' Dim $aResult[1] $j = 0 $iMin = 1000 $iMax = 2500 $aTemp = StringRegExp($sString, "(\d{1,4})", 3) For $i = 0 To UBound($aTemp) - 1 If Number($aTemp[$i]) >= $iMin And Number($aTemp[$i]) <= $iMax Then $j += 1 ReDim $aResult[UBound($aResult) + 1] $aResult[$j] = $aTemp[$i] $aResult[0] = UBound($aResult) - 1 EndIf Next _ArrayDisplay($aResult, 'Совпадающие числа') |
Отправлено: 17:16, 23-07-2010 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Выделение числа из текста | u-Art | AutoIt | 15 | 18-01-2010 03:07 | |
[решено] Excel, перевод числа во время. Как? | Grub | Хочу все знать | 6 | 25-11-2009 10:57 | |
[решено] Вставить строчку из одного txt в оределённое место другого txt | ZeroCrash | AutoIt | 7 | 13-07-2009 07:35 | |
Delphi - [решено] Случайные числа | Ruzik | Программирование и базы данных | 5 | 13-11-2008 08:22 | |
[решено] Как проверить какие обновления (и до какого числа) интегрированы в Windows? | Cobra_1_Stas | Автоматическая установка Windows 2000/XP/2003 | 18 | 21-06-2007 19:59 |
|