powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / BMP формат
15 сообщений из 15, страница 1 из 1
BMP формат
    #36518584
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Считывание кодов BMP файла языком QB64 часто останавливается, не достигая конца файла. При этом следует сообщение, что файл закончен, хотя это на самом деле не так. Кто посоветует, как все коды до конца считывать? Требуется статистическая обработка сочетаний кодов в ВМР файлах. Спасибо.
...
Рейтинг: 0 / 0
BMP формат
    #36518712
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нифига непонятно.
...
Рейтинг: 0 / 0
BMP формат
    #36518782
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg111777 ,
может функция, которой Вы пользуетесь, читает порциями максимум по 32,765 bytes и надо сделать чтение в цикле.
...
Рейтинг: 0 / 0
BMP формат
    #36519124
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIS,

она и стоит в цикле. Вот упрощённый фрагмент программы, касающийся считывания:

OPEN f$ + ".bmp" FOR INPUT AS #1
op:
IF EOF(1) = -1 THEN GOTO kf1
a$ = INPUT$(1, # 1)
for i=1 to k
if a$=b$(i) then n(i)=n(i)+1:goto op
next i
k=k+1:b$(k)=a$:n(k)=1
goto op
kf1:
CLOSE #1
...
Рейтинг: 0 / 0
BMP формат
    #36519415
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg111777,

когда приводишь фрагменты, делай так что-бы переменные не терялись.
...
Рейтинг: 0 / 0
BMP формат
    #36519460
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg111777,

Я вот точно не помню, но, похоже, файл надо открывать, как двоичный. Иначе некоторый код, который соответствует символу EOF будет считаться концом файла. Имхо, не помню уже, давно дело было.
...
Рейтинг: 0 / 0
BMP формат
    #36519565
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, "переменные не терялись" - требуется описание что на входе и что на выходе из фрагмента, я правильно понял?
...
Рейтинг: 0 / 0
BMP формат
    #36519576
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg111777mayton, "переменные не терялись" - требуется описание что на входе и что на выходе из фрагмента, я правильно понял?
Да-да! Неплохо-бы из принципа узнать чему у тебя К равно. И разберись с типизированным доступом к файлам. Что ты читаешь? Байты или символы или может быть строки? Я к слову не помню как в бейсике это делается но уж больно ты неуверенно вопрос задал. Нелишним было-бы проверить. Для парсинга бинарей - это охуе очень важно.
...
Рейтинг: 0 / 0
BMP формат
    #36519581
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge,

спасибо, буду разбираться.
...
Рейтинг: 0 / 0
BMP формат
    #36519631
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

"к" начинается с нуля. Считываются символы. Символ - код. В дальнейшем присваивается стандартный номер 0-255. А здесь "к" сразу присваивает номер ВИДА символа (кода), чтобы массивы не разрастались и непосредственно к считыванию отношения не имеет. На самом деле, регистрация сложнее, чем во фрагменте. Учитываются комбинации символов (кодов). Но проблема проявляется уже в простом варианте. В процентах 30 случаев от общего количества ВМР файлов, считывание и обработка происходит нормально до конца файла. В процентах 10 случаев считывание прерывается в самом начале (менее 1000 символов). В процентах 60 случаев - в середине и очень редко, в конце. Но если говорить об одном и том же файле - то считывание прерывается всегда в одном месте. Я предполагаю причину: иногда при считывании, символы (коды) воспринимаются, как соответствующие команды и принимаются к исполнению. Но почему не во всех файлах и как с этим бороться - не понимаю.
...
Рейтинг: 0 / 0
BMP формат
    #36519639
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ближе к правде. По некоторым старым стандартам и протоколам текстовый файл может иметь спец-символы конца файла. Читай здесь.

http://en.wikipedia.org/wiki/End-of-file

Но еще лучше найти пример как бейсике работать с БИНАРНЫМИ файлами.
...
Рейтинг: 0 / 0
BMP формат
    #36519734
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы попробовал чтение выполнять таким способом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Open f$+".bmp" For Binary As # 1 
For j =  1  To LOF( 1 )
   a$ = Input( 1 , # 1 )
   For i =  1  To k
     If a$ = b$(i) Then ...
   Next
Next
Close # 1 
...
Рейтинг: 0 / 0
BMP формат
    #36519854
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

спасибо, буду продвигаться в этом направлении.
...
Рейтинг: 0 / 0
BMP формат
    #36519856
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vowk,

спасибо большое!!! Попробую!
...
Рейтинг: 0 / 0
BMP формат
    #36519926
serg111777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vowk,

изменил программу, работает! Спасибо!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / BMP формат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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