Что нового

Чтение нескольких символов строки

Isn

Новичок
Сообщения
119
Репутация
3
Доброго времени суток форумчане

Имеется txt вида:
Код:
тел.  (351) 223-66-55
тел.  (351) 729-95-05
mailto:[email protected]
http://www.absolutkonsalt.ru
как "прочитать" из txt в переменную все что находится после тел., mailto: и http://
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
Как вариант, читайте файл по строчкам FileReadLine(), затем для 1 строчки удаляйте слева 5 символов StringTrimLeft(). И так для всех строк.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Можно так:
Код:
#Include <Array.au3>
$ReadFile = FileRead(@ScriptDir & '\1.txt')
$Tel = StringRegExp($ReadFile, 'тел\.(.*)', 3)
$MailTo = StringRegExp($ReadFile, 'mailto:(.*)', 3)
$Http = StringRegExp($ReadFile, 'http:\/\/(.*)', 3)
_ArrayConcatenate($Tel, $MailTo)
_ArrayConcatenate($Tel, $Http)
_ArrayDisplay($Tel)
 
Автор
Isn

Isn

Новичок
Сообщения
119
Репутация
3
Спасибо все за ответы, пример Zaramot самое то.)


Добавлено:
Сообщение автоматически объединено:

почему не выводит в MsgBox?

Код:
#Include <Array.au3>
$ReadFile = FileRead(@ScriptDir & '\test.txt')
$Tel = StringRegExp($ReadFile, 'тел\.(.*)', 3)
$MailTo = StringRegExp($ReadFile, 'mailto:(.*)', 3)
$Http = StringRegExp($ReadFile, 'http:\/\/(.*)', 3)

_ArrayConcatenate($Tel, $MailTo)
_ArrayConcatenate($Tel, $Http)
_ArrayDisplay($Tel)
MsgBox(64, $Tel, $MailTo)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Isn,
Или так.
Код:
#include <Array.au3>

$sText = FileRead(@ScriptDir & '\1.txt')
$aInfo = StringRegExp($sText, '(?im)(?<=тел|mailto|http)[^\r\n]+?([(\w].*?)\r?$', 3)
If @error Then Exit -15
_ArrayDisplay($aInfo)
For $i = 0 To UBound($aInfo) - 1
	MsgBox(64, 'Info ' & $i + 1, $aInfo[$i])
Next



Добавлено:
Сообщение автоматически объединено:

Isn [?]
почему не выводит в MsgBox?
Потому что это массивы.
 
Автор
Isn

Isn

Новичок
Сообщения
119
Репутация
3
а можно без фор как то написать? поместить в переменную и потом по отдельности каждую переменную вывести в MsgBox
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
а можно без фор как то написать? поместить в переменную и потом по отдельности каждую переменную вывести в MsgBox

Мои пример:
Код:
#Include <Array.au3>
$ReadFile = FileRead(@ScriptDir & '\1.txt')
$Tel = StringRegExp($ReadFile, 'тел\.(.*)', 3)
$MailTo = StringRegExp($ReadFile, 'mailto:(.*)', 3)
$Http = StringRegExp($ReadFile, 'http:\/\/(.*)', 3)
_ArrayConcatenate($Tel, $MailTo)
_ArrayConcatenate($Tel, $Http)
MsgBox(64, 'Info', $Tel[0])
MsgBox(64, 'Info', $Tel[1])
MsgBox(64, 'Info', $Tel[2])
MsgBox(64, 'Info', $Tel[3])


Пример madmasles:
Код:
#include <Array.au3>
$sText = FileRead(@ScriptDir & '\1.txt')
$aInfo = StringRegExp($sText, '(?im)(?<=тел|mailto|http)[^\r\n]+?([(\w].*?)\r?$', 3)
If @error Then Exit -15
MsgBox(64, 'Info', $aInfo[0])
MsgBox(64, 'Info', $aInfo[1])
MsgBox(64, 'Info', $aInfo[2])
MsgBox(64, 'Info', $aInfo[3])
 
Верх