Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проверка открыт файл или нет / 6 сообщений из 6, страница 1 из 1
28.07.2006, 07:22:20
    #33883954
Jojo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка открыт файл или нет
привет всем

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

пасиб

Scio me nihil scire

<<Jojo®>>
...
Рейтинг: 0 / 0
28.07.2006, 08:53:13
    #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
28.07.2006, 09:34:26
    #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
28.07.2006, 10:11:57
    #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
28.07.2006, 10:27:00
    #33884322
Jojo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка открыт файл или нет
А если код изменить так

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

Scio me nihil scire

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


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