powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / EOF(#) и текстовый файл
17 сообщений из 17, страница 1 из 1
EOF(#) и текстовый файл
    #32725812
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть некоторое не удобство, читаю текстовый файл при помощи :
Open Fname.Text For Input As #1
Код: plaintext
1.
2.
3.
4.
Do While Not EOF( 1 )
 Line Input # 1 , s
 .....
loop
close
И если в файле есть комбинация байт 0A 1A 0D или по просту символ с кодом 0a в новой строке, то EOF возвращает конец файла, почему ?
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32727970
gacol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если читается простой текстовый файл, то программа правильная.
OD - код конца строки
OA- код перехода на новую строку
Line Input должен считывать строку до этой пары кодов, потом другуй и т.д.
Может выложишь кусок своего файла со странностями, покумекаю.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32728113
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A4 AA AB EE E7 A0 A9 E2 │ A5 E1 EC 21 20 8C EB 20
A1 E3 A4 A5 AC 20 A6 A4 │ A0 E2 EC 20 A2 A0 E1 20
A2 20 E1 A5 E2 A8 2E 0D │ 0A 0D 0A 20 20 20 20 91
AE 20 20 A2 E1 A5 AC A8 │ 20 20 A2 AE AF E0 AE E1
A0 AC A8 2C 20 20 A2 20 │ E2 AE AC 20 20 E7 A8 E1
AB A5 20 20 E1 20 A2 AE │ AF E0 AE E1 A0 AC A8 20
20 AE 20 AF AE A4 AA AB │ EE E7 A5 AD A8 A8 2C 20
AC AE A6 A5 E2 A5 0D 0A │ 20 20 20 20 AE A1 E0 A0
E9 A0 E2 EC E1 EF 20 AA │ 20 4E 43 20 2D 20 32 3A
35 30 33 30 2F 31 35 31 │ 37 20 28 49 67 6F 72 20
44 76 6F 72 79 61 6E 6F │ 76 29 2E 0D 0A 20 20 20
20 28 69 32 64 5F 42 42 │ 53 20 35 39 30 2D 38 36
35 31 20 32 33 3A 30 30 │ 2D 31 31 3A 30 30 29 0D
0A 0D 0A 1A 0D 0A 0D 0A │ 2D 2D 2D 0D 0A 20 2A 20
4F 72 69 67 69 6E 3A 20 │ 8E E1 E2 A0 AD AE A2 A8
E2 A5 20 87 A5 AC AB EE │ 2C 2E 2E EF 20 E1 AE A9

Файл всего 1.9 Гб, пока ищу пакетный обработчик, помянять 0a на 32, но это не выход. Так как на подходе еще один такой файл.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32728156
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного дополню.
Если в текстовом файле есть символ 1A то eof возвращает конец файла......
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32730176
Bolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, не знаю что и сказать. У меня все работает.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32730467
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BolikЧестно говоря, не знаю что и сказать. У меня все работает.

Не должно ! =)
Текст постил в hex. Вообще в ехе по дельфи сказано, что 1A это и есть конец файла. Похоже так и есть, тогда остается 2 решения:
1. Читать файл как binary и функцией передавать часть текста по строкам, т.е. функция читает файл как бинарный, но возвращает только по строчно.
2. Найти прогу, которая изменить все байты 1A на 20, допустим.

Если у кого есть работающие примеры по п.1 то pls выложите.
По п.2 в дебрях инета не нашел ничего подходящего, почти все проги меняют только символы начиная с 20 или не тянуть 1.8 Гб файлы.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32732364
Bolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeTech
Не должно ! =)
...................
1. Читать файл как binary

Стоп-стоп-стоп. Объясните мне дураку - это вообще что за файл? Что Вы выложили на форум?
Если ваш файл открыть в блокноте и он выглядит так как вы запостили сюда - то тогда все работало, работает и будет работать!!!
Если же это вид файла в HEX-режиме, то тогда ПОЧЕМУ вы читаете его как текстовый??? Его естественно надо читать как binary.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32732407
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В hex можно точно сохранить содержимое, в атаче пример файла. Если его открыть как текстовый, то до конца он не читается.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32733318
Bolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно ли я понял, что вам нужно парсить именно такие файлы?
То есть у файла есть "голова", которую иначе как plain text воспринять нельзя и тело? Тело, которое является частью какого-то архива и соответственно должно читаться как binary ???
Если кругом да, то я не понимаю вопроса. Открывать файл как Random и все.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32736713
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BolikПравильно ли я понял, что вам нужно парсить именно такие файлы?
То есть у файла есть "голова", которую иначе как plain text воспринять нельзя и тело? Тело, которое является частью какого-то архива и соответственно должно читаться как binary ???
Если кругом да, то я не понимаю вопроса. Открывать файл как Random и все.

Это часть файла. Тело всегда text, в примере был кодированый файл для передачи по обычным каналам почтой (uue).Как random все читать нельзя. Опять же как я говорил раньше, если написать функцию которая откроет файл как binary, но будет возвращать строки, то это выход. Есть ли такая рабочая прога ?
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32736811
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
\'sFileName-имя файла\'strPos-позиция в файле (номер байта)\'число считываемых байтPublic Function strFromFile(sFileName As String, _                         strPos As Long, _                         strLen As Long) As String    Dim F As Byte    F = FreeFile    Open sFileName For Input As #F      Seek #F, strPos      strFromFile = Input(strLen, F)    Close #FEnd Function
Как отформатирован этот код?
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32737594
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если все так было просто. Файл как binary открыть не сложно, но читать именно по строкам.....?
(длинна строки ограничена 255 символов) =)
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32737666
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeTechно читать именно по строкам - что значит по строкам?
Есть два варианта:
1 - Строки фиксированной длины?
2 - Стороки с разделителями. если да, то какими кодами символов они разделяются
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32738227
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marvan MikeTechно читать именно по строкам - что значит по строкам?
Есть два варианта:
1 - Строки фиксированной длины?
2 - Стороки с разделителями. если да, то какими кодами символов они разделяются

Когда мы читаем файл как binary то можно прочитать только определенное кол-ва байт. А в текстовом файле конец строки есть 0D 0A. Т.е. как я себе представляю, читаем 255 байт, находим там конец строки, перемешаем позицию в файле после 0D 0A и передаем эту строку и т.д. и т.п.

Есть готовые варианты ?
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32739194
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему только по 255 байт? - читать надо порциями как можно ближе к 64К - размер буфера чтения, если я не ошибаюсь.

ну можно еще пробежаться по файлу, понаходить и позапоминать все позиции конца строки и потом уже читать только то, что надо.
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32739224
MikeTech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть готовые варианты ?
...
Рейтинг: 0 / 0
EOF(#) и текстовый файл
    #32739277
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 MikeTech
смотри мыло
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / EOF(#) и текстовый файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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