powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проверка открыт файл или нет
6 сообщений из 6, страница 1 из 1
Проверка открыт файл или нет
    #33883954
Фотография Jojo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет всем

кто побросит код
как сделать проверку открыт файл или нет
файл текстовый(txt) !

пасиб

Scio me nihil scire

<<Jojo®>>
...
Рейтинг: 0 / 0
Проверка открыт файл или нет
    #33884044
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй следующие варианты.

Первый вариант.

Код: 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.
Public Function fnDoesFileAlreadyOpen( _
  strFileName As String) As Boolean
    Dim hFile As Long
    
    On Error GoTo HandleErr
    
    hFile = FreeFile()
    
    Open strFileName For Output As hFile
    
    Close hFile

ExitHere:
    Exit Function

HandleErr:
    Select Case Err
        Case  70 
            MsgBox "Файл уже используется."
            fnDoesFileAlreadyOpen = True
        Case Else
            MsgBox Err.Number & " " & Err.Description
    End Select
    Resume ExitHere
End Function

Второй вариант.

Код: 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.
Private Declare Function lopen Lib "kernel32" Alias "_lopen" ( _
  ByVal lpPathName As String, _
  ByVal iReadWrite As Long) As Long

Private Declare Function GetLastError Lib "kernel32" () As Long

Private Declare Function lclose Lib "kernel32" Alias "_lclose" ( _
  ByVal hFile As Long) As Long

Public Function fnDoesFileAlreadyOpen( _
  strFileName As String) As Boolean
    Dim hFile As Long
    Dim lngError As Long

    hFile = - 1 
    lngError =  0 

    hFile = lopen(strFileName, &H10)

    If hFile = - 1  Then
        lngError = Err.LastDllError
    Else
        lclose (hFile)
    End If

    If (hFile = - 1 ) And (lngError =  32 ) Then
       MsgBox "Файл уже используется."
       fnDoesFileAlreadyOpen = True
    Else
       fnDoesFileAlreadyOpen = False
    End If
End Function
...
Рейтинг: 0 / 0
Проверка открыт файл или нет
    #33884166
Фотография Jojo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Public Function fnDoesFileAlreadyOpen( _
strFileName As String) As Boolean
Dim hFile As Long

On Error GoTo HandleErr

hFile = FreeFile()

Open strFileName For Output As hFile

Close hFile

ExitHere:
Exit Function

HandleErr:
Select Case Err
Case 70
MsgBox "Файл уже используется."
fnDoesFileAlreadyOpen = True
Case Else
MsgBox Err.Number & " " & Err.Description
End Select
Resume ExitHere
End Function

стирает содержимое файла, осталяя 0 размер файла !

Scio me nihil scire

<<Jojo®>>
...
Рейтинг: 0 / 0
Проверка открыт файл или нет
    #33884275
LeonM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim n As Integer, s As String
On Error GoTo theend
s = "c:\a.txt"
n = FreeFile
Open s For Input Access Read Lock Read Write As #n
n = FreeFile
Open s For Input Access Read Lock Read Write As #n
theend:
Select Case Err.Number
Case 0
Case 53
MsgBox s, vbCritical, "No such a file"
Case 55
MsgBox s, , "Is already open with the same handle"
Case 70
MsgBox s, , "Is already open"
Case Else
Debug.Print Err.Number, Err.Description
End Select
...
Рейтинг: 0 / 0
Проверка открыт файл или нет
    #33884322
Фотография Jojo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если код изменить так

Если файл открыт его закрыть ...
Если файл не открыть открыть его для чтения ...

Scio me nihil scire

<<Jojo®>>
...
Рейтинг: 0 / 0
Проверка открыт файл или нет
    #33884339
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jojoстирает содержимое файла, осталяя 0 размер файла !
Код: plaintext
    Open strFileName For Append As hFile
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проверка открыт файл или нет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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