2013-05-27 43 views
1

У меня проблема при попытке прочитать текстовый файл. В принципе, текстовый файл состоит из блоков информации, между каждым блоком у меня есть строка blanck. Hier - образец моего текста:как исправить Ошибка времени выполнения 62 '' Введите конец файла '

FESTWERT FRAUS 
     LANGNAME "bla bla bla" 
     FUNKTION dfgg 
     EINHEIT_W "ü" 
     WERT -9.2654122070312500 
    END 

    KENNFELD KFDWNWCSA 4 4 
     LANGNAME "bla bla bla" 
     FUNKTION FGHK 
     EINHEIT_X "8/kl" 
     EINHEIT_Y "bla" 
     EINHEIT_W "bla" 
     ST/X 1658.0000000000000000 987.0000000000000000 3698.0000000000000000   3520.0000000000000000 
     ST/Y -30.0000000000000000 
     WERT 22.0000000000000000 16.9870000000000000 10.3210000000000000 10.0000000000000000 
     ST/Y 0.0000000000000000 
     WERT 10.0000000000000000 10.0000000000000000 10.0000000000000000 10.0000000000000000 
     ST/Y 45.2500000000000000 
     WERT 10.0000000000000000 10.0000000000000000 10.0000000000000000 10.0000000000000000 
     ST/Y 21.0000000000000000 
     WERT 22.0000000000000000 16.0000000000000000 10.0000000000000000 10.0000000000000000 
    END 

Фактически я хочу извлечь числа из этих блоков. но я получаю эту ошибку: это мой код:

Dim fso As New FileSystemObject 
Dim ts As TextStream 
Set ts = fso.OpenTextFile(Name, ForReading) 
Do While Not ts.AtEndOfStream 

strArray = Split(ts.ReadLine, Space(1), 2) ' Extrahieren, was in einer Zeile ist 

If Len(Join(strArray, "")) <> 0 Then 
    If strArray(0) = "KENNFELD" Then 
    SWKNF = True 
    ts.SkipLine 
    ts.SkipLine 
    ts.SkipLine 
    ts.SkipLine 
    ts.SkipLine 
    wertkenfeld = strArray(1) 
    strArray(1) = "" 
    End If 


    If strArray(0) = "END" Then werden 
    If SWKNFL = True Then 
     For P = 0 To X - 1 
     DoCmd.RunSQL ("INSERT INTO Test_DCML_G (XValue,Wert,name) VALUES ('" & Stx(P) & "','" & wert(P) & "','" & wertkenfeld & "');") 
     Next P 
    End If 
    SWKNF = False 
    SWKNFL = False 
    Erase Warray 
    X = 0 
    W = 0 
    Erase Yarray 
    Erase Xarray 
    Erase Stx 
    Erase wert 
    ts.SkipLine ' I get the error in this line 
    End If 
..... 

Не могли бы вы помочь мне решить эту проблему? Огромное вам спасибо

+1

что, если вы удалите эту строку с ошибкой? при вызове этой строки вы могли бы быть, вероятно, в конце текстового файла, и 'SkipLine' не может быть разрешен, так как перейти туда некуда. –

+1

Сейчас он работает :) спасибо – Kaja

ответ

2

Когда вы достигнете последнего КОНЕЦ файла, пропуская или прочитав выведет вас за пределы конца файла.

Предлагаю вам, как правило , если вам нужно пропустить или прочитать строки для проверки EOF перед перемещением (как для текстовых файлов, так и для набора записей). Вы также можете использовать цикл с условием, в котором вы проверяете, не достигнуто ли EOF или найденная нужная строка.

Первый кусок, в котором вы пропустите строки можно записать в виде

strReadLine = "" 
    do while not ts.AtEndOfStream and not (strReadLine LIKE "ST/*") 
    strReadLine = ts.readline 
    loop 

Bye

Смежные вопросы