Что нового

Чтение текста из крайних значений.(Вывод текста между определённых значений)

Arei

Скриптер
Сообщения
938
Репутация
115
Здравствуйте, скажите пожалуйста как мне вывести текст который находится в определенных приделах.Например словах.
Привер.
OffTopic:
Начало файла
1
2
3
Конец файла

,где мне надо вывести все эти 3 значения.
P.s Заранее благодарю. Подскажите примером или советом.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Чтение текста из крайних значений.(Вывод текста находящийся между определённых )

Arei
на форуме есть возможность редактировать свои сообщения. ипользуй его.
Код:
$sPath = 'somepath'
$hRead = FileOpen($sPath, 0)
$sStart = 'Начало файла'
$sEnd = 'Конец файла'
$sText = ''
Do 
	$sLine = FileReadLine($hRead)
	$err = @error
	If $sLine = $sStart Then
		While 1
			$sLine = FileReadLine($hRead)
			If @error OR $sLine = $sEnd Then
				$err = @error
				ExitLoop
			EndIf
			$sText &= $sLine & @CRLF
		WEnd
	EndIf
Until $err = -1
MsgBox(0, '', $sText)
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
я знаю, а что именно у меня неправильно?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Arei
Можно еще так попробовать
Код:
$sText = FileRead(@ScriptDir & '\1.txt')
$sSearch = StringRegExpReplace($sText, '(?s).*?Начало файла.*?\r\n(.*?)\r\nКонец файла?.*', '\1')
MsgBox(0, @extended, $sSearch)
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
Спасибо, Kaster и madmasles, а можно не из файла, а из текста полученного ранее.А то у меня не получается.Выдаёт полный текст с помощью скрипта madmasles.
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
Это был пример.А файл это чисто пример, покажите для полученного текста заранее.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Код:
$sText = 'Спасибо, Kaster и madmasles, а можно не из файла, а из текста полученного ранее.' & @CRLF & _
'А то у меня не получается.Выдаёт полный текст с помощью скрипта  madmasles.'
$sFirst = 'а из текста '
$sSecond = 'Выдаёт'
;между $sFirst и $sSecond:
$sSearch = StringRegExpReplace($sText, '(?s).*?' & $sFirst & '(.*?)' & $sSecond & '?.*', '\1')
MsgBox(0, @extended, $sSearch)
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
Скажите, а как записать каждое значение в массив.Извините за вопрос в не в отдельной теме.В справке что то не нашёл, или плохо искал.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
madmasles
обработка регвырвами файлов не самый лучший пример, если только это не построчная обработка.
Arei [?]
Скажите, а как записать каждое значение в массив
изучи справку. особенно раздел про массивы и про их формирование. тогда станет ясно, как переделать пример указанный мной. для примера указанного madmasles тебе надо будет
1. прочитать раздел про StringRegExp
2. поменять StringRegExpReplace на StringRegExp
или вставить StringSplit в значение полученное заменой с помощью StringRegExpReplace
 
Верх