Перейти к содержимому

Фотография

Совместное Использование Файла.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 hardstone

hardstone

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 17 сентября 2007 - 04:58

Доброго времени суток!
Дамы и господа, помогите кто чем может!
Есть следующая задача:
Скрипт на TestComplete5, реализованный на VBScript, создает файл в который пишет некоторые строки (которые я сам и задаю в скрипте, этакий свой лог-файл), но мне нужно, чтобы в процессе выполнения скрипта он запускал внешнее приложение, которое бы в процессе выполнения тоже могло дописать свои строки. TC в свою очередь должен определить, что внешнее приложение отработало и продолжило выполнение своего скрипта. Так вот проблемы:
1. Не нашел как можно файл закрыть (это нужно, чтобы внешнее приложение не получило отказ на запись в уже открытый TC-ом файл) и потом открыть в режиме добавления строк.
2. Не нашел каким образом можно отследить, что внешняя программа закончила свою работу (в AutoIt, на пример, есть чудная команда RunWait, которая запускает внешнее приложение и дожидается его завершения прежде, чем продолжить выполнение скрипта)

Жду Вашей помощи.
Заранее спасибо!
  • 0

#2 hardstone

hardstone

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 17 сентября 2007 - 07:23

Первый вопрос решили ... осатлся второй.
Неужели никто не работает с файлами?
Собственно задача одна - открыть текстовый файл в режиме редактирования. Чтобы добавлять в него записи.
Создаю файл так:

Sub CreateFile
Dim fso, MyFile, FileName
FileName = "c:\testfile.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:\testfile.txt", 1)
MyFile.Close
End Sub
  • 0

#3 Bog_dan

Bog_dan

    Новый участник

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Богданов Александр

Отправлено 17 сентября 2007 - 07:35

Могу предложить 2 варианта:

1. Можно использовать WSH. Его метод Run позволяет указать через параметр ждать или не ждать заверщения запущенной программы.
Тогда так:
Set WshShell = CreateObject("WScript.Shell")
commandLine =  "..."
intReturn = WshShell.Run(commandLine, 1 , true)

Третий параметр и отвечает за ожидание.

2. Если нет возможности ждать завершения работы программы (например вы запускаете черезTestedApp.Run), то поставьте цикл с условием на существование процесса вашей программы
while(p.Exists)
Sys.Delay(...)
wend

  • 0

#4 Bog_dan

Bog_dan

    Новый участник

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Богданов Александр

Отправлено 17 сентября 2007 - 09:34

Что-то не понятно какой вопрос для вас первый =)

Вообщем, если еще актуально, чтобы открыть файл для в режиме добавления надо:

Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(filePath, 8)
...
file.Close

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных