Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / File already Open, err 55, при окрытии на запись. Как решить проблему? / 12 сообщений из 12, страница 1 из 1
15.05.2009, 16:10
    #35988577
DasTin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
File already Open, err 55, при окрытии на запись. Как решить проблему?
Помогите, пожалуйста, разобраться, почему при попытке открытия файла для записи макрос выдаёт ошибку "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
15.05.2009, 16:14
    #35988590
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
File already Open, err 55, при окрытии на запись. Как решить проблему?
может он блокирован другим процессом?
...
Рейтинг: 0 / 0
15.05.2009, 16:16
    #35988600
DasTin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
File already Open, err 55, при окрытии на запись. Как решить проблему?
Konst_One,

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

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

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

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

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

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

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

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


Код: 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
15.05.2009, 17:32
    #35988808
DasTin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
File already Open, err 55, при окрытии на запись. Как решить проблему?
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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / File already Open, err 55, при окрытии на запись. Как решить проблему? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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