Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Elven, Ваш файл в кодировке Unicode LE/1200. Просто сохраните его в ANSI/1251.

Ситуация, кстати, интересная…
Например, метод «.OpenTextFile()» объекта «Scripting.FileSystemObject»:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const ForReading   = 1
Const TristateTrue       = -1


Dim strSourceFile
Dim strLine


strSourceFile = "E:\Песочница\0429\IP.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FileExists(strSourceFile) Then
		With .OpenTextFile(strSourceFile, ForReading, TristateTrue)
			Do Until .AtEndOfStream
				strLine = .ReadLine()
				WScript.Echo strLine
			Loop
			
			.Close
		End With
	Else
		WScript.Echo "Can't find [" & strSourceFile & "]."
		WScript.Quit 1
	End If
End With

WScript.Quit 0

несмотря на параметры, открывает файл как ANSI/1251, со всеми вытекающими.

А вот если использовать, казалось бы, вполне аналогичный же метод «.OpenAsTextStream» объекта «File»:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const ForReading   = 1
Const TristateTrue       = -1


Dim strSourceFile
Dim strLine


strSourceFile = "E:\Песочница\0429\IP.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FileExists(strSourceFile) Then
		With .GetFile(strSourceFile).OpenAsTextStream(ForReading, TristateTrue)
			Do Until .AtEndOfStream
				strLine = .ReadLine()
				WScript.Echo strLine
			Loop
			
			.Close
		End With
	Else
		WScript.Echo "Can't find [" & strSourceFile & "]."
		WScript.Quit 1
	End If
End With

WScript.Quit 0

с теми же параметрами — то всё отрабатывает как положено. Пожалуй, в первый раз сталкиваюсь с подобным поведением.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:44, 05-02-2015 | #10