Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Обрезать строку до указанного символа (http://forum.oszone.net/showthread.php?t=151472)

rimm 25-09-2009 15:08 1227257

Обрезать строку до указанного символа
 
Имеется файл вида:

61.172.246.180:80
61.172.249.94:80
61.172.249.96:80
62.233.138.180:3128
66.98.212.79:8888


Хотелось бы получить 2 файла

Первый:
61.172.246.180
61.172.249.94
61.172.249.96
62.233.138.180
66.98.212.79

Второй:
80
80
80
3128
8888


То есть необходима функция обрезающая строку до указанного символа ":" с левой стороны затем с правой..
Буду рад любой помощи..

Frost_Imp 25-09-2009 15:19 1227269

мммм, вставить в эксель и сделать "текст по столбцам" =)
Руками или средствами AutoIt - дело вкуса)

Creat0R 25-09-2009 16:16 1227312

Цитата:

Цитата rimm
необходима функция обрезающая строку до указанного символа ":" с левой стороны затем с правой »

Причём у каждой строки, вот пример с использованием StringRegExp:

Код:

$sInFile = @ScriptDir & "\File.txt"
$sOutFile_IPs = @ScriptDir & "\IPs.txt"
$sOutFile_Ports = @ScriptDir & "\Ports.txt"

$sReadFile = FileRead($sInFile)
$aRet = StringRegExp($sReadFile, '((?:[0-9]{1,3}\.?){4}):([0-9]{1,4})', 3)

$sOutFile_IPs_Content = ""
$sOutFile_Ports_Content = ""

For $i = 0 To UBound($aRet)-1
    If Mod($i, 2) = 0 Then ;Чётное число (или 0), пишем IP'шки
        $sOutFile_IPs_Content &= $aRet[$i] & @CRLF
    Else ;Иначе пишем порты
        $sOutFile_Ports_Content &= $aRet[$i] & @CRLF
    EndIf
Next

$hFile = FileOpen($sOutFile_IPs, 2)
FileWrite($hFile, $sOutFile_IPs_Content)
FileClose($hFile)

$hFile = FileOpen($sOutFile_Ports, 2)
FileWrite($hFile, $sOutFile_Ports_Content)
FileClose($hFile)

Цитата:

Цитата Frost_Imp
вставить в эксель и сделать "текст по столбцам" »

Такие советы лучше не озвучивать, они бессмыслены.

Stomper 25-09-2009 16:20 1227317

Думаю, из файла сами считаете... так же как и положите. Или посмотрите примеры. Берем адрес и порт из строки таким образом:

Код:

  $s="61.172.246.180:80"
  $pos=StringInStr($s,":")
  MsgBox(0,"",StringLeft($s,$pos-1));
  MsgBox(0,"",StringMid($s,$pos+1,StringLen($s)-$pos))


kaster 25-09-2009 16:28 1227324

ну или
Код:

$aLine = StringSplit($sLine, ':')
$sIP = $aLine[1]
$sPort = $aLine[2]


Stomper 25-09-2009 16:32 1227327

kaster, оу :) Признаю, у вас красивее :)


Время: 00:18.

Время: 00:18.
© OSzone.net 2001-