Доступ к файлам
#1
Отправлено 30 ноября 2005 - 15:13
Open "c:\бла-бла.txt" for Input as #1
или этой
Open "c:\бла-бла-бла.txt" for Output Access Write as #1
(и при условии, что файл закрыт на чтение), он останавливает воспроизведение скрипта и радостно пишет, что доступа к файлу он получить не может,после чего столь же радостно вываливается в Тест Менеджер. Все б ничего, да только таких файлов несколько, и проверить треба их все за один прогон скрипта, а дальше воспроизводиться скрипт ну никак не желает (разумеется).
ИМХО, надо бы получить результат обращения к файлу, и если доступа нет (и файл закрыт для записи, чтения...), то проанализировать значение, возвернутое функцией, записать в отчет, что РДВ проверены, багов нет и пойти пить чай (кофе, пиво, ...., С2H5OH).
Весь вопрос - как получить значение функции (т.е. можно обращаться к файлу или нет).
Как бы хелп, кто-нибудь чем-нибудь...
#3
Отправлено 30 ноября 2005 - 15:28
If Open "c:ххх.txt" for Input as #1
then...
Вопрос - как?
#4
Отправлено 30 ноября 2005 - 15:28
Фукции типа GetAttr не пробовали использовать ?
#5
Отправлено 30 ноября 2005 - 15:35
#6
Отправлено 30 ноября 2005 - 15:50
Tools -> GUI Playback Options -> закладка Error Recovery -> в радиогруппе On Script Command Failure выбрать опцию Continue Execution (по умолчанию там выставлена Abort Playback). При этом ошибка будет записана в лог, но скрипт не остановится.
#7
Отправлено 30 ноября 2005 - 15:59
#9
Отправлено 01 декабря 2005 - 12:32
Прикрепленные файлы
#10
Отправлено 01 декабря 2005 - 12:37
#11
Отправлено 01 декабря 2005 - 12:40
#12
Отправлено 01 декабря 2005 - 12:43
#13
Отправлено 01 декабря 2005 - 12:44
If (objFSO Is Nothing) then
MsgBox "!"
Exit Sub
End If
После первой строчки я и рожаю (средствами Робота) окно Runtime Error
#14
Отправлено 01 декабря 2005 - 12:46
#15
Отправлено 01 декабря 2005 - 12:49
#17
Отправлено 01 декабря 2005 - 13:15
Froggy, если бы Вы были не только ленивы, но и внимательны, то заметили бы, что я советовал использовать объекты немного по другому. Я даже примеры накопал, а Вы этим не пользуетесь.Set objFSO = getobject ("c:\Blckpost\blckrwip.ini")
If (objFSO Is Nothing) then
MsgBox "!"
Exit Sub
End If
После первой строчки я и рожаю (средствами Робота) окно Runtime Error
Вот код, который проверяет на наличие файла, и в случае его наличия выводит атрубуты файла.
Dim f as string Dim objFSO as Object Dim oFile as object Set objFSO = CreateObject("Scripting.FileSystemObject") ' f = "c:\zero.null" ' файл не существует f = "c:\Temp.txt" ' файл существует if not objFSO.FileExists(f) then msgbox "нет такого файла """ & f & """" else Set oFile = objFSO.GetFile(f) msgbox oFile.attributes end if
#18
Отправлено 01 декабря 2005 - 13:25
Res = FileVP (Exists, "Name=C:\еееее.ini", "ExpectedResult=Fail")
Только в одну строчку. Проблема в том, что если файл 1 существует, но доступа к нему нет, а файл 2 не существует вообще, то Робот их не разделяет - они для него просто не существует.
А с Вашим, greyver, примером я разобрался, спасибо, но с VP получается действительно покороче.
ЗЫ я не ленивый и не невнимательный, я просто не успеваю отписывать...
#19
Отправлено 01 декабря 2005 - 13:30
ИМХО, надо бы получить результат обращения к файлу, и если доступа нет (и файл закрыт для записи, чтения...), то проанализировать значение, возвернутое функцией, записать в отчет, что РДВ проверены, багов нет и пойти пить чай (кофе, пиво, ...., С2H5OH).
Весь вопрос - как получить значение функции (т.е. можно обращаться к файлу или нет).
Как бы хелп, кто-нибудь чем-нибудь...
А вот пример их хелпа робота. Похоже здесь почти то, что Вам надо.
This example tests the attributes for a file and if it is hidden, changes it to a non-hidden file. Sub main Dim filename as String Dim attribs, saveattribs as Integer Dim answer as Integer Dim archno as Integer Dim msgtext as String archno=32 On Error Resume Next msgtext="Enter name of a file:" filename=InputBox(msgtext) attribs=GetAttr(filename) If Err<>0 then MsgBox "Error in filename. Re-run Program." Exit Sub End If saveattribs=attribs If attribs>= archno then attribs=attribs-archno End If Select Case attribs Case 2,3,6,7 msgtext=" File: " &filename & " is hidden." & Chr(10) msgtext=msgtext & Chr(10) & " Change it?" answer=MsgBox(msgtext,308) If answer=6 then SetAttr filename, saveattribs-2 MsgBox "File is no longer hidden." Exit Sub End If MsgBox "Hidden file not changed." Case Else MsgBox "File was not hidden." End Select End Sub
#20
Отправлено 01 декабря 2005 - 13:41
attribs=GetAttr(filename)
Не видно этот файл роботу, хотя он и существует в реальности... Посему (ИМХО) работать с конструкциями Set/GetAttr не получится. ПРОБОВАЛ УЖЕ. ЕЩЕ ПОЗАВЧЕРА. О ЧЕМ ВЧЕРА ОТВЕТИЛ ТЕЗКЕ СЕРЕГЕ
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных