Извлечь числовой код из тектового файла
Привет, задачка на поиск числа
Имеется файл, полный символьной абракадабры,
но в нем есть код вида 1111-222-000.
Код может иметь любое числовое значение в указанном формате и находиться где угодно в файле, это самое важное условие.
Как добыть этот код скажем на экран?
|
Цитата:
Цитата perjes
полный символьной абракадабры, »
|
Символьной ли? Упакуйте образец в архив и приложите к сообщению.
|
Вложений: 1
пример во вложении
положение искомого кода в тексте может быть разным
|
Попробуйте так (WSH):
Скрытый текст
Код:
Option Explicit
Dim strSourceFile
Dim strContent
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With .OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
With WScript.CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\d*-\d*-\d*"
If .Test(strContent) Then
WScript.Echo .Execute(strContent).Item(0).Value
Else
WScript.Echo "Nothing found"
WScript.Quit 3
End If
End With
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 2
End If
End With
Else
WScript.Echo "Usage: wscript.exe " & WScript.ScriptName & " <Source file>"
WScript.Quit 1
End If
WScript.Quit 0
Сохраните приведённый код в файл с расширением «.vbs». Путь к искомому файлу указывается аргументом скрипта (также можно просто перетянуть исходный файл на скрипт в Проводнике).
P.S. Содержимое результирующего окна MessageBox можно скопировать в буфер обмена просто нажав в нём «Ctrl-C»:
Скрытый текст
Код:
---------------------------
Windows Script Host
---------------------------
3213333-2342342-999
---------------------------
ОК
---------------------------
|
perjes,
Например так:
Код:
@echo off
<"t.txt" (for /f "tokens=1-3 delims=-" %%a in ('more^|findstr/rc:"\<[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9]\>"') do @(set "t1=%%a"& set "t3=%%c"& cmd/v/c echo !t1:~-4!-%%b-!t3:~,3!))
pause>nul
все будет зависеть от того что в строках, будет в этой строке символ "-", этот код уже поломается.
|
Цитата:
Цитата alpap
findstr/rc:"\<[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9]\>" »
|
alpap, там может быть любое число: сравните пример, приведённый автором в первом сообщении, и выложенный им же позже образец.
|
Время: 20:16.
© OSzone.net 2001-