|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Выделение числа из текста |
|
[решено] Выделение числа из текста
|
Новый участник Сообщения: 6 |
Приветствую!
Уважаемые Гуру, подскажите, как можно выделить число из текстовой строки? Строка всегда начинается с символа TAB, затем идет число, причем если более 3-х знаков, то разделяется запятой, далее ENTER и текст с ненужными числами. В данный момент использую извращенный метод: проверку на наличие запятой, помещением строки в открытый блокнот и автоматическое удаление запятой и лишних текстовых знаков. |
|
Отправлено: 21:26, 17-01-2010 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать В 1.txt записал 10000 строк по образцу. Мой первый вариант отрабатывал Time: 79.999 секунд, а вот этот вариант:
#include <File.au3> $aTable = "" $hFile1 = "1.txt" $hFile2 = "2.txt" FileOpen($hFile1, 0) FileOpen($hFile2, 2) _FileReadToArray($hFile1, $aTable) $i = 0 While 1 $i += 1 If $i = $aTable[0] Then ExitLoop $sResult = StringRegExpReplace($aTable[$i], "(?s)\s+?([0-9,?]*).*", "\1") $sResult = StringReplace($sResult, ",", "") If @extended > 0 Then FileWriteLine($hFile2, $sResult) WEnd FileClose($hFile1) FileClose($hFile2) u-Art, Запятые код тоже убирает, правда двумя формулами, хотя наверняка Creat0R сможет сделать это одной. Пока писал свое сообщение, появился ответ Creat0R. Creat0R, Ваш вариант обработал 10000 строк за Time: 2.442! Просто экстра класс! |
Отправлено: 01:34, 18-01-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата madmasles:
|
|
------- Отправлено: 01:39, 18-01-2010 | #12 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Creat0R,
Я правильно понял, что у меня 2 лишних действия: "FileOpen($hFile1, 0)" и "FileClose($hFile1)"? |
Отправлено: 01:53, 18-01-2010 | #13 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата madmasles:
![]() Цитата madmasles:
$sFile1 = "1.txt" $sFile2 = "2.txt" $sText = FileRead($sFile1) $aResult = StringRegExp($sText, "\s+?([0-9,?]+)", 3) $sResults = "" For $i = 0 To UBound($aResult)-1 $sResults &= $aResult[$i] & @CRLF Next $hFile2 = FileOpen($sFile2, 2) FileWrite($hFile2, StringStripWS(StringReplace($sResults, ",", ""), 2)) FileClose($hFile2) |
||
------- Отправлено: 02:00, 18-01-2010 | #14 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Creat0R,
Ваш последний вариант у меня: Time: 2.351 Предпоследний: Time: 2.331. Практически одинаково. По поводу Цитата Creat0R:
|
|
Отправлено: 02:26, 18-01-2010 | #15 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 03:07, 18-01-2010 | #16 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Поиск числа в .txt | Не флужу | AutoIt | 9 | 23-07-2010 17:16 | |
[решено] Excel, перевод числа во время. Как? | Grub | Хочу все знать | 6 | 25-11-2009 10:57 | |
Delphi - [решено] Случайные числа | Ruzik | Программирование и базы данных | 5 | 13-11-2008 08:22 | |
Интерфейс - [решено] Выделение файлов в проводнике. | Zalatoy | Microsoft Windows Vista | 3 | 02-06-2008 14:17 | |
Выделение текста в Word'е | Alexandre | Хочу все знать | 9 | 03-07-2003 14:35 |
|