Что нового

вытаскивание нужных цифр из файла

Noober

Новичок
Сообщения
16
Репутация
0
Имеем файл log.txt внутри которого:
Код:
!->20/12 09:34:24 [192.168.0.7:1541>80] (t1 2952) 
POST /cgi-bin/nascgi.exe HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://192.168.0.1/cgi-bin/nascgi.exe?command=findclient&USER=%DE%CB%DF&PASSWORD=
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: 192.168.0.1
Content-Length: 425
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: CHANGEINFO=Y; SURNAME=АФОНАСОВА; NAME1=АНАСТАСИЯ; NAME2=СЕРГЕЕВНА; DR=14/10/1992; SMO=ф8907; SERPOLIS=ГМ; NPOLIS=121412; TEL=

NEWWIN=Y&USER=%DE%CB%DF&PASSWORD=&CODEMED=&STARTMEDIC=&RULL=&PARAM=&NEWACTION=&NEWRULL=&NEWPARAM=&NRSTRINFO=&NRSTRINFO=&NRINAME=&NRIPIN=&NRIPOLIS=&NRIPASP=&NRIDR=&NRIHOUSE=&NRIDOGSTR=&DIAPAZON1INFO=20%2F12%2F2011&NRINAME=&NRIPOLIS=&NRIPIN=&NRIPASP=&NRIDR=&NRIHOUSE=&NRIDOGSTR=&PIN=425495&SNILS=&DR=&SURNAME=&NAME1=&NAM
!->20/12 09:34:25 [192.168.0.7:1541>80] (t1 2953) >HTTP  in:1127 out:16463  Time:1328
NAMEMODE=TALON&USER=%DE%CB%DF&PASSWORD=&RULL=EXITNEWTALON&PARAM=&NRSTRINFO=&IDTALONINFO=00356975&DISPINFO=&SURNAMEINFO=%D8%CB%DB%CA%CE%C2&PIN=425412&NAME1INFO=%D0%CE%C4%C8%CE%CD&NAME2INFO=%C0%CD%C0%D2%CE%CB%DC%C5%C2%C8%D7&DRINFO=21%2F04%2F1994&SEXINFO=%CC&LGOTHIDDENINFO=&VPOLISINFO=2&SMOINFO=%
!->20/12 09:34:28 [192.168.0.7:1544>80] (t2 2957)


надо вытащить все значения PIN и положить их в отдельный файл типа
Код:
425495
425412


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

пробывал так, но вытаскивает только последнее значение
Код:
$filetxt = FileOpen ( @ScriptDir & "\log.txt", 0)
$allfiletxt = FileRead ($filetxt)
$text= StringRegExpReplace($allfiletxt, '(?s).*?PIN=(\d+)&?.*', '$1' )
ConsoleWrite($text)
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$file=FileRead(@ScriptDir & '\123')
$res=StringRegExp($file,'PIN=(\d+)&',3)
$str=''
For $i=0 To UBound($res)-1
	$str&=$res[$i]&@CRLF
Next
FileWrite(@ScriptDir & '\567',$str)
 
Автор
N

Noober

Новичок
Сообщения
16
Репутация
0
А теперь вопрос как удалить дубликаты из этого
Код:
201289
201289
201289
201289
230972
230972
230972
165797
165797
411936
406476
406476
406476
424765
424765
424765
424765
141418
404996
404996
404996
133828
133828
133828
155307
204152
410829
155307
170299
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$file=FileRead(@ScriptDir & '\123')
$res=StringRegExpReplace($file,'(?s)(\b\d+\b)(?=.*\b\1\b)','')
$str=StringStripWS($res,4)
FileWrite(@ScriptDir & '\567',$str)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
sngr
Можно сразу удалять пустые строки:
Код:
$str = StringRegExpReplace($file, '(?s)(\b\d+\b)(?=.*\b\1\b)\r?\n', '')

чтобы не использовать StringStripWS.
 
Верх