Слить данные из bmp файла в динамически созданную очередь.
Добавлено: 13 Март 2006, 12:56
Рад приветствовать приверженцев Кла-на и им сочувствующих!
Весна, наверное, виновата, но проблема ни как не решается.
Задача очень простая. Надо «перелить» данные из bmp файла в очередь (ди). Кол-во очередей изначально неизвестно – определяется в процессе исходя из размера этого самого БээМПэ файла.
Итак, задача первая: как создать в Run Time очередь?
Идем дальше. Надо из заголовка bmp файла найти (считать и преобразовать) ширину (в пикселях) изображения.
Для этого были произведены следующие действия:
1. Создан (прописан в словаре) Dos-файл со String’овым полем длиной 2000 знаков. На сколько я понял, именно этой 2000-символьной матрицей (шаблоном) будут считываться порции данных из прописанного в переменную пути физического bmp файла.
2. Открываю файл, считываю в цикле 2000 символьные порции данных.
3. Из первой порции выделяю 4 байта начиная с 19 символа (ширина изображения).
4. Преобразую их в десятеричную систему исчисления.
Может я, конечно, не правильно понимаю, но считывать эти четыре байта надо в обратной последовательности. Сначала 22, затем 21, потом 20 и в конце – 19. Примерно так:
loc:CString = VAL(Sub(IND:Name,22,1))&VAL(Sub(IND:Name,21,1))&VAL(Sub(IND:Name,20,1))&VAL(Sub(IND:Name,19,1))
Но это только теоретические выкладки собственного умонапряжения. На практике это, увы, не приводит к нужному результату.
И последний вопрос. Как, зная (надеюсь на это) ширину изображения, создать динамически (вопрос первый) очередь со строкой, длина которой равна этой самой ширине. Или, попросту говоря, как создать в процессе исполнения очередь, с определяемой в рантайме длиной строки.
Может быть у кого есть пример какой на эту (эти) тему.
С уважением и благодарностью
=New User=
Весна, наверное, виновата, но проблема ни как не решается.
Задача очень простая. Надо «перелить» данные из bmp файла в очередь (ди). Кол-во очередей изначально неизвестно – определяется в процессе исходя из размера этого самого БээМПэ файла.
Итак, задача первая: как создать в Run Time очередь?
Идем дальше. Надо из заголовка bmp файла найти (считать и преобразовать) ширину (в пикселях) изображения.
Для этого были произведены следующие действия:
1. Создан (прописан в словаре) Dos-файл со String’овым полем длиной 2000 знаков. На сколько я понял, именно этой 2000-символьной матрицей (шаблоном) будут считываться порции данных из прописанного в переменную пути физического bmp файла.
2. Открываю файл, считываю в цикле 2000 символьные порции данных.
3. Из первой порции выделяю 4 байта начиная с 19 символа (ширина изображения).
4. Преобразую их в десятеричную систему исчисления.
Может я, конечно, не правильно понимаю, но считывать эти четыре байта надо в обратной последовательности. Сначала 22, затем 21, потом 20 и в конце – 19. Примерно так:
loc:CString = VAL(Sub(IND:Name,22,1))&VAL(Sub(IND:Name,21,1))&VAL(Sub(IND:Name,20,1))&VAL(Sub(IND:Name,19,1))
Но это только теоретические выкладки собственного умонапряжения. На практике это, увы, не приводит к нужному результату.
И последний вопрос. Как, зная (надеюсь на это) ширину изображения, создать динамически (вопрос первый) очередь со строкой, длина которой равна этой самой ширине. Или, попросту говоря, как создать в процессе исполнения очередь, с определяемой в рантайме длиной строки.
Может быть у кого есть пример какой на эту (эти) тему.
С уважением и благодарностью
=New User=