Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


kosmonavtom, Не сильно изучал Ваши коды, однако, как идея, перед открытием документа с расширением .DOCX в WORD, проанализировать, не является ли он .RTF
Вот пример функции для такого анализа
Код: Выделить весь код
File1 = "Z:\Box_In\doc1.docx"
File2 = "Z:\Box_In\doc2.docx"
File3 = "Z:\Box_In\doc2.docx"

File4 = "Z:\Box_In\docx.docx"
File5 = "Z:\Box_In\rtf.docx"
File6 = "Z:\Box_In\rtf.rtf"

MsgBox CStr(RTF(File1)) + vbCrLf + File1
MsgBox CStr(RTF(File2)) + vbCrLf + File2
MsgBox CStr(RTF(File3)) + vbCrLf + File3
MsgBox CStr(RTF(File4)) + vbCrLf + File4
MsgBox CStr(RTF(File5)) + vbCrLf + File5
    
'------------------------------------------
Function RTF(Fname)
' RTF=1 Файл .rtf
' RTF=0 Файл не .rtf
' RTF=-1 Файл не найден
' RTF=-2 Ошибка при открытии Файла
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    If Not FSO.FileExists(Fname) Then
        RTF = -1
        Exit Function
    End If

    On Error Resume Next

    Set iFile = FSO.OpenTextFile(Fname, 1, False)
    If Err.Number <> 0 Then
        RTF = -2
        On Error GoTo 0
        Exit Function
    End If
    AllTxt = iFile.ReadLine
    iFile.Close

    AllTxt = LCase(Mid(AllTxt, 1, 5))
    
    RTF = 1
    If Not AllTxt = "{\rtf" Then
        RTF = 0
    End If
    Set AllTxt = Nothing
End Function

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:14, 13-01-2019 | #5