С чего это??

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

С чего это??

Сообщение Alex_2005 » 27.04.2005 (Ср) 16:07

Говорить много не буду, просто немогу понять почепу появляется ошибка 62. Не могу никак въехать, заработался видать. Если есть желание подскажите. (код немного лохматый, так что пойму, если не захотите отвечать)


Код: Выделить всё


Private Sub butStart_Click()
    Dim E As Integer
    'Dim i As Integer
    Dim Zeile As String
    Dim ZeichenPosition As Integer
    Dim ZeichenPosition2 As Integer
    Dim Ausgabe As String
    '    Dim Ausgabe2 As String
    Set ColMenschen = New Collection
    Set ColFirmen1 = New Collection
    Set ColFirmen2 = New Collection
    Set ColAdressen = New Collection
    Set ColStadte = New Collection
    '    Set Col2 = New Collection

    Set FSO = New FileSystemObject
    Set FSOText = FSO.GetFile(App.Path & "\Mensch.txt").OpenAsTextStream
    'i = 0
    On Error GoTo 100
    E = 1
    Do While Not FSOText.Line
        DoEvents
        Zeile = FSOText.ReadLine
        DoEvents
        ZeichenPosition = InStr(1, Zeile, "(")
        DoEvents
        ZeichenPosition2 = ZeichenPosition + 1
        DoEvents
        Ausgabe = Mid(Zeile, ZeichenPosition2)
        '        Ausgabe2 = Mid(Zeile, 1, ZeichenPosition - 1)
        DoEvents
        'Debug.Print Zeile
        'Debug.Print Ausgabe
        ColMenschen.Add Ausgabe
        '        Col2.Add Ausgabe2
        DoEvents
        'Debug.Print FSOText.ReadLine
        'Debug.Print Len(FSOText.ReadLine)
        'DoEvents
        'Debug.Print InStr(1, FSOText.ReadLine, "(") & vbTab & DoEvents & Mid(FSOText.ReadLine, InStr(1, FSOText.ReadLine, "("))
        'i = 1 + i
    Loop
    Set FSO = Nothing
    Set FSOText = Nothing
100:    Select Case E
            Case 1
                Debug.Print ColMenschen.Count
                GoTo 101
            Case 2
                Debug.Print ColAdressen.Count
                GoTo 102
            Case 3
                Debug.Print ColStadte.Count
                GoTo 103
            Case 4
                Debug.Print ColFirmen1.Count
                GoTo 104
            Case 5
                Debug.Print ColFirmen2.Count
                GoTo 105
        End Select
        '        Call TextDateiErstellen
101:    Set FSO = New FileSystemObject
        Set FSOText = FSO.GetFile(App.Path & "\Strasse.txt").OpenAsTextStream
        'i = 0
        '        On Error GoTo 100
        E = 2
        Do While Not FSOText.Line
            DoEvents
            Zeile = FSOText.ReadLine
            DoEvents
            ZeichenPosition = InStr(1, Zeile, "(")
            DoEvents
            ZeichenPosition2 = ZeichenPosition + 1
            DoEvents
            Ausgabe = Mid(Zeile, ZeichenPosition2)
            '        Ausgabe2 = Mid(Zeile, 1, ZeichenPosition - 1)
            DoEvents
            'Debug.Print Zeile
            'Debug.Print Ausgabe
            ColAdressen.Add Ausgabe
            '        Col2.Add Ausgabe2
            DoEvents
            'Debug.Print FSOText.ReadLine
            'Debug.Print Len(FSOText.ReadLine)
            'DoEvents
            'Debug.Print InStr(1, FSOText.ReadLine, "(") & vbTab & DoEvents & Mid(FSOText.ReadLine, InStr(1, FSOText.ReadLine, "("))
            'i = 1 + i
        Loop
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColAdressen.Count
        '        Call TextDateiErstellen
102:    Set FSO = New FileSystemObject
        Set FSOText = FSO.GetFile(App.Path & "\Stadt.txt").OpenAsTextStream
        'i = 0
        '        On Error GoTo 100
        E = 3
        Do While Not FSOText.Line
            DoEvents
            Zeile = FSOText.ReadLine
            DoEvents
            ZeichenPosition = InStr(1, Zeile, "(")
            DoEvents
            ZeichenPosition2 = ZeichenPosition + 1
            DoEvents
            Ausgabe = Mid(Zeile, ZeichenPosition2)
            '        Ausgabe2 = Mid(Zeile, 1, ZeichenPosition - 1)
            DoEvents
            'Debug.Print Zeile
            'Debug.Print Ausgabe
            ColStadte.Add Ausgabe
            '        Col2.Add Ausgabe2
            DoEvents
            'Debug.Print FSOText.ReadLine
            'Debug.Print Len(FSOText.ReadLine)
            'DoEvents
            'Debug.Print InStr(1, FSOText.ReadLine, "(") & vbTab & DoEvents & Mid(FSOText.ReadLine, InStr(1, FSOText.ReadLine, "("))
            'i = 1 + i
        Loop
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColStadte.Count
        '        Call TextDateiErstellen
103:    Set FSO = New FileSystemObject
        Set FSOText = FSO.GetFile(App.Path & "\Firma1.txt").OpenAsTextStream
        'i = 0
        '        On Error GoTo 100
        E = 4
        Do While Not FSOText.Line
            DoEvents
            Zeile = FSOText.ReadLine
            DoEvents
            ZeichenPosition = InStr(1, Zeile, "(")
            DoEvents
            ZeichenPosition2 = ZeichenPosition + 1
            DoEvents
            Ausgabe = Mid(Zeile, ZeichenPosition2)
            '        Ausgabe2 = Mid(Zeile, 1, ZeichenPosition - 1)
            DoEvents
            'Debug.Print Zeile
            'Debug.Print Ausgabe
            ColFirmen1.Add Ausgabe
            '        Col2.Add Ausgabe2
            DoEvents
            'Debug.Print FSOText.ReadLine
            'Debug.Print Len(FSOText.ReadLine)
            'DoEvents
            'Debug.Print InStr(1, FSOText.ReadLine, "(") & vbTab & DoEvents & Mid(FSOText.ReadLine, InStr(1, FSOText.ReadLine, "("))
            'i = 1 + i
        Loop
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColFirmen1.Count
        '        Call TextDateiErstellen
104:    Set FSO = New FileSystemObject
        Set FSOText = FSO.GetFile(App.Path & "\Firma2.txt").OpenAsTextStream
        'i = 0
        '        On Error GoTo 100
        E = 5
        Do While Not FSOText.Line
            DoEvents
            Zeile = FSOText.ReadLine
            DoEvents
            ZeichenPosition = InStr(1, Zeile, "(")
            DoEvents
            ZeichenPosition2 = ZeichenPosition + 1
            DoEvents
            Ausgabe = Mid(Zeile, ZeichenPosition2)
            '        Ausgabe2 = Mid(Zeile, 1, ZeichenPosition - 1)
            DoEvents
            'Debug.Print Zeile
            'Debug.Print Ausgabe
            ColFirmen2.Add Ausgabe
            '        Col2.Add Ausgabe2
            DoEvents
            'Debug.Print FSOText.ReadLine
            'Debug.Print Len(FSOText.ReadLine)
            'DoEvents
            'Debug.Print InStr(1, FSOText.ReadLine, "(") & vbTab & DoEvents & Mid(FSOText.ReadLine, InStr(1, FSOText.ReadLine, "("))
            'i = 1 + i
        Loop
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColFirmen2.Count
        '        Call TextDateiErstellen
105:    Call DatenInDieDatenBank
End Sub

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 27.04.2005 (Ср) 17:17

Знаешь дружок, лучше выложи весь проект, а то ошибок там штук 100 и все не 62=))))

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 27.04.2005 (Ср) 17:24

да я тоже подумывал не выложить ли, да вот лень матушка. А на счёт ошибок ты зря. Там ни одной ошибки нет кроме 62, притом обработчик ошибок должен по идее их перехватить и пердписанные действие выполнить, но почемуто при повторном появлении ошибки не происходит "прыжка" к обработчику. Вот это и вопрос...

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 27.04.2005 (Ср) 18:09

Нет это ты зря, там куча обращений/объявлений различных объектов которых не существует, а значит код в принципе не работоспособен!
У тебя работает у нас нет...

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 27.04.2005 (Ср) 18:56

По идее, ты один раз обьявляешь
Код: Выделить всё
On Error GoTo
в начале процедуры.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 18:57

Друг мой, вы издеваетесь???

Если вырезать все, на что ругается вб то получается примерно так:

Код: Выделить всё


Private Sub butStart_Click()
    Dim E As Integer
    'Dim i As Integer
    Dim Zeile As String
    Dim ZeichenPosition As Integer
    Dim ZeichenPosition2 As Integer
    Dim Ausgabe As String
    '    Dim Ausgabe2 As String
    Set ColMenschen = New Collection
    Set ColFirmen1 = New Collection
    Set ColFirmen2 = New Collection
    Set ColAdressen = New Collection
    Set ColStadte = New Collection
    '    Set Col2 = New Collection

   
    'i = 0
    On Error GoTo 100
    E = 1
    Do While Not FSOText.Line
        DoEvents
        Zeile = FSOText.ReadLine
        DoEvents
        ZeichenPosition = InStr(1, Zeile, "(")
        DoEvents
        ZeichenPosition2 = ZeichenPosition + 1
        DoEvents
        Ausgabe = Mid(Zeile, ZeichenPosition2)
        '        Ausgabe2 = Mid(Zeile, 1, ZeichenPosition - 1)
        DoEvents
        'Debug.Print Zeile
        'Debug.Print Ausgabe
        ColMenschen.Add Ausgabe
        '        Col2.Add Ausgabe2
        DoEvents
        'Debug.Print FSOText.ReadLine
        'Debug.Print Len(FSOText.ReadLine)
        'DoEvents
        'Debug.Print InStr(1, FSOText.ReadLine, "(") & vbTab & DoEvents & Mid(FSOText.ReadLine, InStr(1, FSOText.ReadLine, "("))
        'i = 1 + i
    Loop
    Set FSO = Nothing
    Set FSOText = Nothing
100:    Select Case E
            Case 1
                Debug.Print ColMenschen.Count
                GoTo 101
            Case 2
                Debug.Print ColAdressen.Count
                GoTo 102
            Case 3
                Debug.Print ColStadte.Count
                GoTo 103
            Case 4
                Debug.Print ColFirmen1.Count
                GoTo 104
            Case 5
                Debug.Print ColFirmen2.Count
                GoTo 105
        End Select
        '        Call TextDateiErstellen
101:
       
        'i = 0
        '        On Error GoTo 100
        E = 2
       
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColAdressen.Count
        '        Call TextDateiErstellen
102:
       
        'i = 0
        '        On Error GoTo 100
        E = 3
       
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColStadte.Count
        '        Call TextDateiErstellen
103:
       
        'i = 0
        '        On Error GoTo 100
        E = 4
       
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColFirmen1.Count
        '        Call TextDateiErstellen
104:
       
        'i = 0
        '        On Error GoTo 100
        E = 5
       
            Set FSO = Nothing
             Set FSOText = Nothing
        '100:    Debug.Print ColFirmen2.Count
        '        Call TextDateiErstellen
105:
End Sub


Согласись, немного короче, а? Если сделать так то у меня все работает без ошибок =)

Так-что выложи-ка весь проект или то, чего ему не хватает...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 29.04.2005 (Пт) 10:36

Спасибо всем что не поленились заглянуть. Но я хотел несколько ясностей внести: во первых , как я уже говорил , код у меня лохматый, ну, не то чтобы шерсти много, просто клочки бесполезного кода. Но он работоспособности не мешает, просто у меня времени небыло его "подстричь". Во второых я нашёл причину ошибки. В третьих мне просто хотелось узнать, почему обработчик ошибки не работал, когда появлялись ошибки? К примеру при поевлении первой ошибки работает всё нормально, но почемуто когда появляется эта же самая ошибка второй раз, обработчик ошибок уже не пашет? Кто нибудь причину знаеть?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 29.04.2005 (Пт) 11:49

Потому, что из обработчика ошибок надо обратно выходить в основной код с помощью Resume или Resume next. Или хотя бы Err.Clear делать. А ты пытаешься отловить ошибку в обработчике ошибок.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList