powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / File already Open, err 55, при окрытии на запись. Как решить проблему?
12 сообщений из 12, страница 1 из 1
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988577
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожалуйста, разобраться, почему при попытке открытия файла для записи макрос выдаёт ошибку "file already Open". Не могу понять почему??


'===================================
f611 = FreeFile
f611out = FreeFile

Open filepath For Input As #f611
Open Range("OutPutFile").Value For Append As #f611out ' <-- Ошибка '55' file already Open


Do Until EOF(f611)
Line Input #f611, data

If rrr Then
outdata = 1

If rrr< 5 Then
outdata = 2

ElseIf outdata = 3
Else outdata = 4

End If

Print #1, outdata

Loop

Close #f611
Close #f611out
'===================================
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988590
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может он блокирован другим процессом?
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988600
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Вряд ли, я создавал новые файлы и подставлял в макрос, со всеми та же беда.
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988604
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- filepath
- Range("OutPutFile").Value

чему равны?
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988611
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

filepath = "C:\tmp\input.txt"
Range("OutPutFile").Value = "C:\tmp\output.txt"
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988613
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Open FileName For Append Access Write Shared As #handle
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988627
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Код: plaintext
Open Range("OutPutFile").Value For Append Access Write Shared As #f611out

Пишет "file already Open", @
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988638
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит он действительно OPEN
проверяйте ваш код, может вы в цикле одни и те же файлы открываете, но забываете их закрывать из-за ошибки например.

используйте в обработчике ошибок универсальный метод:

Код: plaintext
Close
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988699
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Логическим тыком я понял, что ошибку "file already Open" он выдаёт если пытаться открывать одновременно файл и на считывание и на запись, предварительно не закрыв один из них, даже если это разные файлы.
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988728
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли какя-то функция, которая бы позволяла держать открытыми два и более файлов???
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988752
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы что-то недоговариваете, должно все работать.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Private Sub Command1_Click()

On Error GoTo err_debug
Dim f1 As Integer
Dim f2 As Integer
Dim Data As String

    f1 = FreeFile
    
    Open "c:\realtek.log" For Input Access Read Shared As #f1
    
    f2 = FreeFile
    Open "c:\1.txt" For Append Access Write Shared As #f2
    
    Do Until EOF(f1)
        
        Line Input #f1, Data
        
        'Debug.Print Data
        
        Print #f2, Data
        
    Loop
    
lb_out:
    Close #f2
    Close #f1
    Exit Sub
    
err_debug:
    Resume lb_out
    
End Sub
...
Рейтинг: 0 / 0
File already Open, err 55, при окрытии на запись. Как решить проблему?
    #35988808
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Всё правильно, моя ошибка записать код так:
Код: plaintext
1.
2.
3.
4.
5.
f611 = FreeFile             ' Value = 1
f611out = FreeFile         ' Value = 1

Open filepath For Input As #f611
Open Range("OutPutFile").Value For Append As #f611out ' <-- Ошибка '55' file already Open 

А надо было правильно так:

Код: plaintext
1.
2.
3.
4.
5.
f611 = FreeFile            ' Value = 1
Open filepath For Input As #f611

f611out = FreeFile        ' Value = 2
Open Range("OutPutFile").Value For Append As #f611out ' ОК

В моём, первом, случае f611 и f611out было присвоено одно и тоже значение 1, поэтому ВБ, не давал держать открытым два файла.


Большое спасибо!!!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / File already Open, err 55, при окрытии на запись. Как решить проблему?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]