Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Разбор строк из текстового поля

Ответить
Настройки темы
[решено] Разбор строк из текстового поля

Старожил


Сообщения: 156
Благодарности: 1


Конфигурация

Профиль | Отправить PM | Цитировать


Всем привет!
В текстовом поле edit1 имеется текст вида
Код: Выделить весь код
1 строка
2 строка
3 строка
4 строка
5 строка
6 строка
7 строка
Нужна функция для кнопки button1, при нажатии на какую в текстовом поле edit2 получилась бы одна строка такого вида:
Код: Выделить весь код
M 5 строка#!#4 строка#!#2 строка#!#1 строка
И еще может понадобиться всесто всей третьей строки извлечение только ее части и вставка в код выше.
Спасибо за советы!

Отправлено: 19:14, 27-08-2013

 

Старожил


Сообщения: 156
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, хорошо. В принципе могу уже свистеть.
Строка
Код: Выделить весь код
GUICtrlSetData($Edit2, $aS[5] & "#!#" & $aS[4] & "#!#" & $aS[2] & "#!#" & $aS[1])
содержит пробелы. Как от них избавиться в конечном результате? Кстати, если сильно надоедаю, то разрешаю меня послать)))) Я с autoit знаком три дня, хочу научится, а для этого надо решать задачу, к которой есть личный интерес, а не писать скрипты "Привет мир".
И касательно третьей строки... Посмотрел - надо все таки вытягивать с нее часть.
Вид у нее такой
Код: Выделить весь код
my_icons.dll,101
Вот тот номер после запятой мне и нужен.В данном случае 101. Предполагаю, что нужна работа с регулярными выражениями. С связи с этим еще вопрос - у кого есть утилита regexp для работы с ними? А то с сайта ее скачать не могу - страница не открывается

Отправлено: 19:14, 28-08-2013 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


eus_deus,
Код: Выделить весь код
$sString = 'строка с пробелами' & @TAB & ' и еще одна ' & @CR & @LF & 'и еще строка '
ConsoleWrite('До: >' & $sString & '<' & @LF)
$sString = StringStripWS($sString, 8)
ConsoleWrite('После: >' & $sString & '<' & @LF)
ConsoleWrite('---' & @LF)
$sString = 'Мне нужно только то, что после последней запятой, и до конца строки,123'
$sString = StringRegExpReplace($sString, '^.*,', '')
ConsoleWrite($sString & @LF)
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:33, 28-08-2013 | #12


Старожил


Сообщения: 156
Благодарности: 1

Профиль | Отправить PM | Цитировать


madmasles, с числом и регуляркой - это точно мое. а вот с пробелами пока не понял, пошел смотреть внимательнее

сообщаю. не знаю, как так, но пробелов сейчас нет. Выбор числа в строке - отлично. Всплыла новая проблема. Функция
Код: Выделить весь код
Func _Convert()
$aS=StringSplit(GUICtrlRead($Edit1),@CRLF,1)
$sIco = StringRegExpReplace($aS[4], '^.*,', '')
$aResult=$aS[5]&"#!#"&$sIco&"#!#"&$aS[2]&"#!#"&$aS[3]
GUICtrlSetData($Edit2,"M " & $aResult)
EndFunc
работает как и ожидалось, но что делать, если строка $aS[3] пустая? Тогда функция мне пишет в конец строки символы #!#, которые там не нужны. Проблема в том, что строка может быть пустой, а может и нет. Какое то условие, если на конце строки стоит #!#, то удалять его нафиг?

Отправлено: 19:42, 28-08-2013 | #13


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


eus_deus,
Код: Выделить весь код
Local $sString = '', $sDelim = '#!#'
For $i = 1 To 5
    $sString &= ' String ' & $i & ' ' & $sDelim
Next
ConsoleWrite($sString & @LF)

$sString = StringRegExpReplace($sString, $sDelim & '$', '')
ConsoleWrite($sString & @LF)
$sString = StringStripWS($sString, 8)
ConsoleWrite($sString & @LF)
Или
Код: Выделить весь код
Local $sString = '', $sDelim = '#!#'
For $i = 1 To 5
    $sString &= ' String ' & $i & ' ' & $sDelim
Next
ConsoleWrite($sString & @LF)
$sString = StringRegExpReplace($sString, $sDelim & '$|\s+', '')
ConsoleWrite($sString & @LF)

Последний раз редактировалось madmasles, 28-08-2013 в 20:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:16, 28-08-2013 | #14


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата eus_deus:
Кстати, если сильно надоедаю, то разрешаю меня послать)))) »
С чего бы это ? Форум для того и создан, чтобы «надоедали», повышая квалификацию.


По остальному решение изложил коллега madmasles.

madmasles, только сейчас заметил, что теперь ссылки ведут на перевод документации на русскоязычном сообществе.

Отправлено: 20:34, 28-08-2013 | #15


Старожил


Сообщения: 156
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, да, я уже пытаюсь вникнуть в коды коллеги madmasles'a. Правда, боюсь, пока они для меня слишком сложны, но я стараюсь понять))

Отправлено: 20:36, 28-08-2013 | #16


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата Iska:
теперь ссылки ведут на перевод документации на русскоязычном сообществе. »
Давно уже так.
Цитата eus_deus:
они для меня слишком сложны, но я стараюсь понять »
Если что-то непонятно, спрашивайте.

Отправлено: 20:53, 28-08-2013 | #17


Старожил


Сообщения: 156
Благодарности: 1

Профиль | Отправить PM | Цитировать


madmasles, ругается при работе на строку
Код: Выделить весь код
 $sString &= $Result2 & $i & ' ' & $sDelim
знак & перед равенством пробовал удалять - без толку

Функция
Код: Выделить весь код
Func _Convert()
$aS=StringSplit(GUICtrlRead($Edit1),@CRLF,1)
$sIco = StringRegExpReplace($aS[4], '^.*,', '')
$aResult=$aS[5]&"#!#"&$sIco&"#!#"&$aS[2]&"#!#"&$aS[3]
$aResult2=StringStripWS ( $aResult, 8 )
Local $sString = '', $sDelim = '#!#'
For $i = 1 To 5
 $sString = $Result2 & $i & ' ' & $sDelim
Next
ConsoleWrite($sString & @LF)
$sString = StringRegExpReplace($sString, $sDelim & '$|\s+', '')
ConsoleWrite($sString & @LF)
GUICtrlSetData($Edit2,"M " & $sString)
EndFunc

Отправлено: 20:55, 28-08-2013 | #18


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата madmasles:
Давно уже так. »
Год-два? Разве это давно?!

Отправлено: 21:05, 28-08-2013 | #19


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата eus_deus:
ругается при работе на строку »
У Вас нет переменной $Result2
Цитата Iska:
Год-два? Разве это давно?! »
Для меня давно то, даты появления чего я уже не помню.

Отправлено: 21:20, 28-08-2013 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Разбор строк из текстового поля

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] из строк текстового файла нужно вырезать определенные символы alek2012 Скриптовые языки администрирования Windows 10 11-07-2012 16:54
CMD/BAT - Смена кодировки текстового файла, поиск строки и разбор значения profcom Скриптовые языки администрирования Windows 0 10-11-2011 20:20
CMD/BAT - Поиск и копирование нескольких строк из текстового файла. valen Скриптовые языки администрирования Windows 0 07-11-2011 17:27
CMD/BAT - [решено] Перенос и удаление строк из текстового файла sk8ter Скриптовые языки администрирования Windows 15 03-10-2010 19:35
JavaScript: вывод текста из текстового поля Jekamajor Вебмастеру 5 10-08-2005 12:43




 
Переход