Ошибка в коде программы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
killerb
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 27.01.2005 (Чт) 23:08
Откуда: Днепропетровск

Ошибка в коде программы

Сообщение killerb » 26.06.2005 (Вс) 18:49

Доброго времени суток!

Пишу программу для замены одного текста другим в указанной папке. Программа готова, вот только ошибку выдает в самом странном месте:
Код: Выделить всё
Public Sub ReWrite(ByVal Path As String, FindText As String, ReplaceText As String)

Dim SaveText As String
Dim InputText As String
   
    Open Path For Input As #8
       
        Do
            Line Input #8, InputText
            SaveText = SaveText & InputText & vbCrLf
        Loop Until EOF(8)
       
    Close #8

SaveText = Replace(SaveText, FindText, ReplaceText)

    Open Path For Output As #9'Тут выскакивает ошибка "Файл уже открыт"

        Print #9, SaveText

    Close #9

End Sub

Пожалуйста помогите исправить код!
Жизнь - это карусель, на которой никому не дано удержаться надолго. Стивен Кинг

a_mayor
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 02.06.2005 (Чт) 21:44

Сообщение a_mayor » 26.06.2005 (Вс) 19:00

Проблема не в коде. Код работает нормально.
У тебя видимо файл в памяти где-то завис или параллельно кем-то открыт и недоступен для записи.
Попробуй перезапустить Басик.
Или попробуй запусти функцию Reset в коде.

killerb
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 27.01.2005 (Чт) 23:08
Откуда: Днепропетровск

Сообщение killerb » 26.06.2005 (Вс) 22:50

Вроде код в порядке, а что это за Reset и с чем его едят ?
Жизнь - это карусель, на которой никому не дано удержаться надолго. Стивен Кинг

killerb
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 27.01.2005 (Чт) 23:08
Откуда: Днепропетровск

Сообщение killerb » 26.06.2005 (Вс) 22:55

Все, нашел ошибку. Действительно файл был открыт еще одним Sub'ом.
Жизнь - это карусель, на которой никому не дано удержаться надолго. Стивен Кинг

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.06.2005 (Пн) 2:23

Вот именно для этого придумали функцию FreeFile...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 27.06.2005 (Пн) 7:32

а точнее:
dim fileno as integer
fileno=freefile
open filename for output as fileno
print #fileno,"text"
close fileno
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 174

    TopList