Что нового

[Данные, строки] Чтение данных из коммандной строки

HaeMHuK

Новичок
Сообщения
43
Репутация
0
ping ya.ru

Pinging ya.ru [87.250.250.3] with 32 bytes of data:
Reply from 87.250.250.3: bytes=32 time=47ms TTL=55

Сори, наверное не тот пример взял.
Есть программа, которая выполняется с коммандной строки. Она генерирует определенную строку, которая имеет вид ХХ-123456.
Мне из всего текста, которое она выводит нужно вытянуть цифры после ХХ-.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
HaeMHuK
А чем Вас штатный не устраивает?
Код:
MsgBox(64, 'Ping', 'ping ya.ru ' & Ping('ya.ru'))
 
Автор
H

HaeMHuK

Новичок
Сообщения
43
Репутация
0
Сори, наверное не тот пример взял.
Есть программа, которая выполняется с коммандной строки. Она генерирует определенную строку, которая имеет вид ХХ-123456.
Мне из всего текста, которое она выводит нужно вытянуть цифры после ХХ-.
 

madmasles

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

$sRead = ''
$iPing = 0
$iPid = Run(@ComSpec & ' /C ping google.ru', '', @SW_HIDE, $STDOUT_CHILD)
While 1
	$sRead &= StdoutRead($iPid)
	If @error Then ExitLoop
	Sleep(10)
WEnd
$sRead = _WinAPI_OemToChar($sRead)
MsgBox(64, 'All', $sRead)
$aPing = StringRegExp($sRead, 'время=(\d+)\D', 3)
If IsArray($aPing) Then
	For $i = 0 To UBound($aPing) - 1
		$iPing += Number($aPing[$i])
	Next
	$iPing = $iPing / UBound($aPing)
EndIf
MsgBox(64, 'Ping', Round($iPing) & ' ms')

_WinAPIEx.au3
 
Верх