![]() |
Выделение числа из текста
Приветствую!
Уважаемые Гуру, подскажите, как можно выделить число из текстовой строки? Строка всегда начинается с символа TAB, затем идет число, причем если более 3-х знаков, то разделяется запятой, далее ENTER и текст с ненужными числами. В данный момент использую извращенный метод: проверку на наличие запятой, помещением строки в открытый блокнот и автоматическое удаление запятой и лишних текстовых знаков. |
А можно увидеть образец того, что есть, того что нужно получить и свой скрипт.
|
Образец строки:
2,541 В наличии: мало BK500-RS CS кусок скрипта обработки в блокноте: WinActivate("work.txt - Блокнот","") WinWaitActive ("work.txt - Блокнот","") Send("{CTRLDOWN}a{CTRLUP}{DEL}") ; Очистка блокнота Send("{CTRLDOWN}v{CTRLUP}") MouseClick("left", 9, 51, 1, 0) ; Клик в начало Блокнота Send("{DEL}") ; Удаляем ТАб Send("{SHIFTDOWN}") ; Начало выделения цены MouseMove(66,51,1) MouseDown("left") MouseUp("left") Send("{SHIFTUP}") ; Конец выделения цены Send("{CTRLDOWN}c{CTRLUP}") ; Копируем цену обратно в буфер $cena = ClipGet() Обработка если нет запятой, в случае с запятой сначала три клика и удаление запятой. |
Я правильно понял, что из файла с текстом вида
Цитата:
Вы бы скопировали фрагмент Вашего исходного текста и здесь привели. |
Цитата:
Изначально текст в буфере, к сожалению на странице форума не отобразился отступ символа ТАБ перед 2,541 |
Код:
$sText = ClipGet() |
У меня первоначальный вариант был длиннее, плохо разбираюсь в "pattern", но воспользовавшись как всегда идеальной формулой от Creat0R
Цитата:
Код:
#include <File.au3> Хочу попробовать то же самое сделать через массив, вроде намного быстрее получается. |
Цитата:
Код:
$sFile1 = "1.txt" |
Цитата:
Действительно красиво, осталось решить проблему с удалением запятой, попробую поковыряться с функциями. |
Или так:
Код:
$sFile1 = "1.txt" Цитата:
|
В 1.txt записал 10000 строк по образцу. Мой первый вариант отрабатывал Time: 79.999 секунд, а вот этот вариант:
Код:
#include <File.au3> u-Art, Запятые код тоже убирает, правда двумя формулами, хотя наверняка Creat0R сможет сделать это одной. Пока писал свое сообщение, появился ответ Creat0R. Creat0R, Ваш вариант обработал 10000 строк за Time: 2.442! Просто экстра класс! |
Цитата:
|
Creat0R,
Я правильно понял, что у меня 2 лишних действия: "FileOpen($hFile1, 0)" и "FileClose($hFile1)"? |
Цитата:
Цитата:
Код:
$sFile1 = "1.txt" |
Creat0R,
Ваш последний вариант у меня: Time: 2.351 Предпоследний: Time: 2.331. Практически одинаково. По поводу Цитата:
|
|
Время: 03:43. |
Время: 03:43.
© OSzone.net 2001-