Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Ошибка Записи В Скрытый Файл На Vbs (http://forum.oszone.net/showthread.php?t=283697)

term1nal 16-06-2014 15:42 2364734

Ошибка Записи В Скрытый Файл На Vbs
 
Добрый день!!! Облазил весь интернет, но ничего похожего не нашел сразу говорю) Проблема заключается в том, что вот этот кусок кода:

Set TextStream = FSO.OpenTextFile(".\Rezult.txt", 2, True)
TextStream.WriteLine DateL
TextStream.Close

Не хочет записывать в файл, если он скрытый. Если он обычный, все нормально. В чем может быть причина, ведь читает он нормально из скрытого файла? Винда - 7. Разрешения на папку и файл - все. Скрытый файл делается через правую кнопку, свойства, чекрыжек на "скрытый". Работаю под админом. Спасибо!

Iska 16-06-2014 17:08 2364775

читать дальше »
Код:

Option Explicit

Const ForWriting = 2

Const ReadOnly = 1
Const Hidden  = 2
Const System  = 4


Dim strSourceFile

Dim lngAttributes


strSourceFile = "C:\Песочница\045\Rezult.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
        If .FileExists(strSourceFile) Then
                With .GetFile(strSourceFile)
                        lngAttributes = .Attributes
                        .Attributes = lngAttributes And Not (ReadOnly + Hidden + System)
                       
                        With .OpenAsTextStream(ForWriting)
                                .WriteLine Date()
                                .Close
                        End With
                       
                        .Attributes = lngAttributes
                End With
        Else
                With .CreateTextFile(strSourceFile)
                        .WriteLine Date()
                        .Close
                End With
        End If
End With

WScript.Quit 0


term1nal 17-06-2014 09:10 2365038

Спасибо большое Iska. А в чем ошибка того кода? Почему метод opentextfile не стал записывать в скрытый файл?

term1nal 17-06-2014 10:09 2365050

И еще такой маленький вопрос, почему not 1 равно -2. Ведь логическое отрицание 1 должно быть 0? А not 7 равно вообще -8? Объясни пожалуйста, или ткни в мануал какой. В гугле ищу, кроме базовых not or and и применения к true false не нахожу. Спасибо!

Iska 17-06-2014 16:41 2365231

Цитата:

Цитата term1nal
А в чем ошибка того кода? »

Ни в чём, насколько я понимаю.

Цитата:

Цитата term1nal
Почему метод opentextfile не стал записывать в скрытый файл? »

Полагаю, это особенности реализации объекта TextStream в WSH.

Цитата:

Цитата term1nal
И еще такой маленький вопрос, »

На будущее: один вопрос — одна тема.

Цитата:

Цитата term1nal
почему not 1 равно -2. »

1₁₀ = 00000000000000000000000000000001₂
not 00000000000000000000000000000001₂ = 11111111111111111111111111111110₂
А 11111111111111111111111111111110₂ — это и есть -2₁₀ в дополнительном коде. Именно так представляются целые знаковые (signed) числа в WSH (и не только в нём).

Цитата:

Цитата term1nal
Ведь логическое отрицание 1 должно быть 0? »

Это не «логическое отрицание». А битовая операция NOT, проводящаяся над числом. Логическая операция проводится над логическими величинами. Ну, и значение True не «1», а «-1». Следует предварительно преобразовать число к правильному типу данных — Boolean (последняя строка в нижеприведённом коде). Можете сравнить:
Код:

WScript.Echo "Not 1:",        Not 1
WScript.Echo "True:",        True
WScript.Echo "Not True:",    Not True
WScript.Echo "Not CBool(1):", Not CBool(1)

Цитата:

Код:

Not 1: -2
True: -1
Not True: 0
Not CBool(1): 0


Цитата:

Цитата term1nal
А not 7 равно вообще -8? »

Аналогично вышеизложенному. Можете даже проверить на калькуляторе в инженерном режиме, переключаясь с Dec на Bin и обратно.

Цитата:

Цитата term1nal
Объясни пожалуйста, или ткни в мануал какой. »

Дополнительный код (представление числа) — Википедия

term1nal 17-06-2014 16:48 2365233

Iska, Огромное спасибо еще раз!!! Хорошего настроения Вам!!! Тема закрыта!!!


Время: 20:46.

Время: 20:46.
© OSzone.net 2001-