Показать полную графическую версию : Извлечь числовой код из тектового файла
Привет, задачка на поиск числа
Имеется файл, полный символьной абракадабры,
но в нем есть код вида 1111-222-000.
Код может иметь любое числовое значение в указанном формате и находиться где угодно в файле, это самое важное условие.
Как добыть этот код скажем на экран?
полный символьной абракадабры, »
Символьной ли? Упакуйте образец в архив и приложите к сообщению.
пример во вложении
положение искомого кода в тексте может быть разным
Попробуйте так (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
все будет зависеть от того что в строках, будет в этой строке символ "-", этот код уже поломается.
findstr/rc:"\<[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9]\>" »
alpap, там может быть любое число: сравните пример, приведённый автором в первом сообщении, и выложенный им же позже образец.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.