Что нового

файл UTF-8 с BOM

AlexxxMksv

Новичок
Сообщения
39
Репутация
0
считываю файл файл UTF-8 с BOM, а сохраняется уже файл UTF-8 без BOM
Подскажите как сохранить в файл UTF-8 с BOM?

Код:
#pragma compile(AutoItExecuteAllowed, true)

$oXML = ObjCreate("Msxml2.DOMDocument.3.0")
$oXML.Load("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права.xml")

$oXML.Save("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права1.xml")
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
#include 'FileConstants.au3'
$h = FileOpen("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права1.xml", $FO_OVERWRITE + $FO_UTF8)
FileWrite($h, $oXML.xml)
FileClose($h)
 
Автор
A

AlexxxMksv

Новичок
Сообщения
39
Репутация
0
inververs сказал(а):
Код:
#include 'FileConstants.au3'
$h = FileOpen("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права1.xml", $FO_OVERWRITE + $FO_UTF8)
FileWrite($h, $oXML.xml)
FileClose($h)

Не очень понятно как это прикрутить к моему варианту:

Код:
$oXML = ObjCreate("Msxml2.DOMDocument.6.0")
$oXML.load("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права.xml")
$oObjects = $oXML.SelectNodes("Rights/object")
If $oXML.ParseError.ErrorCode <> 0 Then MsgBox(0,"","В файле нет поля object")
For $oObject In $oObjects
   If Not StringRegExp( $oObject.SelectSingleNode("name").Text, "StandardAttribute.LineNumber") > 0 Then
	  $rights = $oObject.SelectNodes("right")
	  For $right In $rights
		 If $right.SelectSingleNode("name").Text = "InteractiveDelete" Or _
			$right.SelectSingleNode("name").Text = "InteractiveDeletePredefinedData" Or _
			$right.SelectSingleNode("name").Text = "InteractiveSetDeletionMarkPredefinedData" Or _
			$right.SelectSingleNode("name").Text = "InteractiveClearDeletionMarkPredefinedData" Or _
			$right.SelectSingleNode("name").Text = "InteractiveDeleteMarkedPredefinedData" Then
			$right.SelectSingleNode("value").Text = "false"
		 Else
			$right.SelectSingleNode("value").Text = "true"
		 EndIf
	  Next
   EndIf
Next
$oXML.Save("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права1.xml")
 
Автор
A

AlexxxMksv

Новичок
Сообщения
39
Репутация
0
Да заработало у меня так:

Код:
#include 'FileConstants.au3'
$oXML = ObjCreate("Msxml2.DOMDocument.6.0")
$oXML.load("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права.xml")
$oObjects = $oXML.SelectNodes("Rights/object")
If $oXML.ParseError.ErrorCode <> 0 Then MsgBox(0,"","В файле нет поля object")
For $oObject In $oObjects
   If Not StringRegExp( $oObject.SelectSingleNode("name").Text, "StandardAttribute.LineNumber") > 0 Then
	  $rights = $oObject.SelectNodes("right")
	  For $right In $rights
		 If $right.SelectSingleNode("name").Text = "InteractiveDelete" Or _
			$right.SelectSingleNode("name").Text = "InteractiveDeletePredefinedData" Or _
			$right.SelectSingleNode("name").Text = "InteractiveSetDeletionMarkPredefinedData" Or _
			$right.SelectSingleNode("name").Text = "InteractiveClearDeletionMarkPredefinedData" Or _
			$right.SelectSingleNode("name").Text = "InteractiveDeleteMarkedPredefinedData" Then
			$right.SelectSingleNode("value").Text = "false"
		 Else
			$right.SelectSingleNode("value").Text = "true"
		 EndIf
	  Next
   EndIf
Next
;$oXML.Save("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права1.xml")

$hFile = FileOpen("C:\Users\Desktop\сравнить\Роль.ПолныеПрава.Права1.xml", 128+1)
FileWrite($hFile, $oXML.xml)
FileClose($hFile)


благодарю
 
Верх