Что нового

Вытащить числа и записать в файл

den-x

Новичок
Сообщения
46
Репутация
0
Вот файл, а строчках коментарий:
Код:
<data> 
	<presents> 
		[..........]
	</presents> 
	<friends> 
		<uid>423445</uid> ;вот эти цифры
		<uid>583389</uid> ;вот эти цифры
                 [..........]
		<uid>165018055</uid>;вот эти цифры
	</friends> 
	<hasNewPresents>[false/true]</hasNewPresents> 
</data>
Надо вытащить и записать в файл, чисел около 1000
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
den-x,
Числа только в тегах <friends> - </friends> ?
 
Автор
D

den-x

Новичок
Сообщения
46
Репутация
0
madmasles,нет числа ещё есть в
Код:
<presents> 
	[тэги с числами]
        [..........]
        [тэги с числами]
</presents>
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Ну если числа только в тегах uid, то можно так:

Код:
$vTest = ClipGet() ;это содержимое файла

$aRet = StringRegExp($vTest, '<uid>(\d+)</uid>', 3)

For $i = 0 To UBound($aRet)-1
	ConsoleWrite($aRet[$i] & @LF)
Next
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Или так.
Код:
$sFileRead = @ScriptDir & '\1.txt'
$sDelim = @CRLF ;'|', 'some'
$hFile = FileOpen($sFileRead, FileGetEncoding($sFileRead)) ;если не только числа искать надо

$sText = FileRead($hFile)
FileClose($hFile)
$sSearchText = StringRegExpReplace($sText, '(?si).*<friends>(.*?)</friends>.*', '$1')
$sText = ''
$aUid = StringRegExp($sSearchText, '<uid>(\d+?)</uid>', 3)
If @error Then
	MsgBox(16, 'Error', 'StringRegExp')
	Exit 100
EndIf
For $i = 0 To UBound($aUid) - 1
	$sText &= $aUid[$i] & $sDelim
Next
$hFile = FileOpen(@ScriptDir & '\friends_uid.txt', 2)
FileWrite($hFile, StringTrimRight($sText, StringLen($sDelim)))
FileClose($hFile)
 
Верх