Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / BMP формат / 15 сообщений из 15, страница 1 из 1
13.03.2010, 20:50:04
    #36518584
serg111777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP формат
Считывание кодов BMP файла языком QB64 часто останавливается, не достигая конца файла. При этом следует сообщение, что файл закончен, хотя это на самом деле не так. Кто посоветует, как все коды до конца считывать? Требуется статистическая обработка сочетаний кодов в ВМР файлах. Спасибо.
...
Рейтинг: 0 / 0
13.03.2010, 23:11:46
    #36518712
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP формат
Нифига непонятно.
...
Рейтинг: 0 / 0
14.03.2010, 00:27:15
    #36518782
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP формат
serg111777 ,
может функция, которой Вы пользуетесь, читает порциями максимум по 32,765 bytes и надо сделать чтение в цикле.
...
Рейтинг: 0 / 0
14.03.2010, 14:30:35
    #36519124
serg111777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP формат
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
14.03.2010, 17:40:45
    #36519415
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP формат
serg111777,

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

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

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

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

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

Но еще лучше найти пример как бейсике работать с БИНАРНЫМИ файлами.
...
Рейтинг: 0 / 0
14.03.2010, 22:29:12
    #36519734
Vowk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP формат
Я бы попробовал чтение выполнять таким способом:
Код: 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
15.03.2010, 00:26:21
    #36519854
serg111777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP формат
mayton,

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

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

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


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