Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / путь в обход признака конца файла / 7 сообщений из 7, страница 1 из 1
14.02.2008, 18:00
    #35133806
newnoober
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
путь в обход признака конца файла
Нужно загрузить данные из текстового файла в базу данных.
Для этого открываю его и построчно считываю.
Но кроме данных в файле имеется некий эл. ключ, который сколько угодно раз может содержать признак конца фала. В этом случае я наблюдаю ошибку «Run-time error '62': Input past end of file».
Посоветуйте пожалуйста обход сего.
...
Рейтинг: 0 / 0
14.02.2008, 18:20
    #35133874
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
путь в обход признака конца файла
newnooberДля этого открываю его и построчно считываю.Вот тут то ты и ошибаешься. Если файл может содержать "не текст" то его надо открывать в бинарном режиме и читать поблочно. Разбор на строки прийдется делать самостоятельно кончено, зато и проблем с "не текстовыми" символами не будет.
...
Рейтинг: 0 / 0
14.02.2008, 18:36
    #35133921
newnoober
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
путь в обход признака конца файла
Выбрал построчное считывание, т.к. такой "прикол" встречается достаточно редко (прмерно 1 из 200). А в файлах случайно выбранных для теста боков небыло.
...
Рейтинг: 0 / 0
15.02.2008, 12:48
    #35134650
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
путь в обход признака конца файла
и не только построчное
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    Dim txt As String:    txt = App.Path & "\пример файла.txt"
    
    Dim r_symb As String
    Dim r_Size As Long
    Dim r_Free As Integer:    r_Free = FreeFile
    
    Open txt For Binary Access Read As #r_Free
    
        r_Size = LOF(r_Free)
        r_symb = Space(r_Size)
        Get #r_Free, , r_symb
    
    Close #r_Free
    
    Debug.Print r_symb
...
Рейтинг: 0 / 0
18.02.2008, 13:06
    #35138881
newnoober
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
путь в обход признака конца файла
Спасибо всем ответившим.
Остановился на 2х вариантах:
1) открытие в бинарном режиме, замена участка содержащего эл.ключ на пробелы; открытие для построчного чтения..
2) открытие в бинарном режиме и тут же разбор содержимого на строки ..
Только вот не знаю на коком остановиться. С одной стороны 2 раза открывать один файл ..., а с другой искать chr(13) ...
может кто-то помежет определиться? (строк в каждом файле около тысячи, файлов 100-200)
...
Рейтинг: 0 / 0
18.02.2008, 18:42
    #35139999
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
путь в обход признака конца файла
заменить подпись в одном файле, не превышающем 2Гб
а переменную Signature, можно заполнить и прочитав текстовый файл
чтобы не держать в тексте программы эту подпись
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    Dim Signature As String:    Signature = "подпись " & Chr( 13 ) & Chr( 10 ) & "и переход"

    Dim txt As String:          txt = App.Path & "\пример файла.txt"
    
    Dim r_symb As String
    Dim r_Size As Long
    Dim r_Free As Integer:    r_Free = FreeFile
    
    Open txt For Binary Access Read As #r_Free
    
        r_Size = LOF(r_Free)
        r_symb = Space(r_Size)
        Get #r_Free, , r_symb
    
    Close #r_Free
    
    r_symb = Replace(r_symb, Signature, " ", , , vbBinaryCompare)
    
    Open txt & "~" For Binary Access Write As #r_Free
    Put #r_Free, , r_symb
    Close #r_Free
...
Рейтинг: 0 / 0
21.02.2008, 11:05
    #35146607
MikeTech
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
путь в обход признака конца файла
Что то подобное мне требовалось ранее, но руки написать класс не дошли, может сейчас кто найдет время... =)
http://]http://www.sql.ru/forum/actualthread.aspx?tid=128022
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / путь в обход признака конца файла / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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