CMD/BAT - Получение значении из XML и сохранение в txt

Ответить
 • Просмотры: 1
Аватара пользователя
sector2484

Re: CMD/BAT - Получение значении из XML и сохранение в txt

Сообщение sector2484 »

sector2484, прошу прощения, как-то не обратил особого внимания на формулу.





WSH

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Option Explicit
Dim strSourceFile
Dim strDestFile
Dim objFSO
Dim objRegExp
Dim arrContent
Dim strLine
Dim strResultLine
strSourceFile = "C:\Мои проекты\0202\cords.xml"
strDestFile   = "C:\Мои проекты\0202\Result.txt"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strSourceFile) Then
	With objFSO.OpenTextFile(strSourceFile)
		arrContent = Split(.ReadAll(), vbCrLf)
		.Close
	End With
	Set objRegExp = WScript.CreateObject("VBScript.RegExp")
	With objRegExp
		.Pattern    = "^$"
		.IgnoreCase = True
	End With
	With objFSO.CreateTextFile(strDestFile, True)
		For Each strLine In arrContent
			If objRegExp.Test(strLine) Then
				With objRegExp.Execute(strLine).Item(0).Submatches
					strResultLine = _
						.Item(0) & " = " & _
						.Item(1) & ", " & _
						.Item(2) & ", " & _
						CStr(CLng(.Item(1)) + CLng(.Item(3))) & ", " & _
						CStr(CLng(.Item(2)) + CLng(.Item(4)))
				End With
				.WriteLine strResultLine
			Else
				WScript.Echo "Can't parse string [" & strLine & "]."
			End If
		Next
		.Close
	End With
	Set objRegExp = Nothing
Else
	WScript.Echo "Can't find source file [" & strSourceFile & "]."
	WScript.Quit 2
End If
Set objFSO = Nothing
WScript.Quit 0








Пакетный файл

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=C:\Мои проекты\0202\cords.xml
set sDestFile=C:\Мои проекты\0202\Result2.txt
if exist "%sSourceFile%" (
	>"%sDestFile%" (
		for /f usebackq^ tokens^=2^,4^,6^,8^,10^ delims^=^" %%i in ("%sSourceFile%") do (
			set id=%%~i
			set /a x = %%~j
			set /a y = %%~k
			set /a w = %%~l
			set /a h = %%~m
			set /a xw = !x! + !w!
			set /a yh = !y! + !h!
			echo !id! = !x!, !y!, !xw!, !yh!
		)
	)
) else (
	echo Can't find source file [%sSourceFile%].
	exit /b 1
)
endlocal
exit /b 0
Аватара пользователя
Busla

Re: CMD/BAT - Получение значении из XML и сохранение в txt

Сообщение Busla »

Цитата Iska:



Упакуйте Ваш xml-файл с точным и полным содержимым
CMD/BAT - Получение значении из XML и сохранение в txt




смысл xml в том, что у него нет "точного" содержимого - порядок и пробельные символы могут меняться

раз уж взялись за WSH - там есть DOM и xpath для вменяемого парсинга xml
Аватара пользователя
Iska

Re: CMD/BAT - Получение значении из XML и сохранение в txt

Сообщение Iska »

Цитата Iska:



Упакуйте Ваш xml-файл с точным и полным содержимым в архив
CMD/BAT - Получение значении из XML и сохранение в txt





Цитата Busla:



смысл xml в том, что у него нет "точного" содержимого - порядок и пробельные символы могут меняться
CMD/BAT - Получение значении из XML и сохранение в txt




Busla, «полное» и «точное» содержимое есть у файла, будь он хоть с xml, хоть без. Мне было важно получить именно тот файл, с которым работает автор, в неизменном виде. А не кусочки/выжимки/переделки из него.




Цитата Busla:



раз уж взялись за WSH - там есть DOM и xpath для вменяемого парсинга xml
CMD/BAT - Получение значении из XML и сохранение в txt




«Вменяемый парсинг xml» оставляю Вам Изображение. Вы сам файл видели?
Аватара пользователя
sector2484

Re: CMD/BAT - Получение значении из XML и сохранение в txt

Сообщение sector2484 »

sector2484, имейте в виду, что возможности вычислений для пакетных файлов крайне ограничены — если там окажутся вещественные значения или целые, но слишком большие значения — мы получим некорректные результаты. В этом случае пробуйте пользовать WSH.
Аватара пользователя
Iska

Re: CMD/BAT - Получение значении из XML и сохранение в txt

Сообщение Iska »

Цитата Iska:



Вы сам файл видели?
CMD/BAT - Получение значении из XML и сохранение в txt




вот только сейчас посмотрел - xml там и не пахнет



All people lie (c)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»