IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Помогите пгожалуйста с растром?, Вывод растрового изображения из файла
сообщение
Сообщение #1


Гость






Мне тут надо из файла, ваывести небольшое растровое изображение на экран(без подкачки)ж
Довольно прилично подумав я получил такую прогу
program picture;
uses graph;
const
n=20;
m=20;
var
driver, mode, x, y, c: integer;
i,j:integer;
A: array[1..n,1..m] of integer;
procedure schit (var f: file);
begin
Assign(f,'d:\Programs\file.bmp');
reset(f);
For i := 1 to n do
for j := 1 to m do
A[i,j]:= read(f,i,j);
close(f);
end;
end;

begin
driver:=detect;
schit;
InitGraph(driver,mode,'d:\tp\BGI');
If A[i,j]=0 then Putpixel(i,j,0)
else putpixel(i,j,1);
closegraph;
readln;
end.

Но она все равно не работает...
Подскажите плиз что надо подправить и где??? А тоя уже почти с ума сошел, пытаясь отладить её((

М
1. При публикации программ используй теги CODE
2. Если хочешь теоретический ответ, то не приплетай конкретную задачу. Переношу в Задачи
-- Лопарь

 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Zetrok @ 14.12.2007 23:32) *

Assign(f,'d:\Programs\file.bmp');
reset(f);
For i := 1 to n do
for j := 1 to m do
A[i,j]:= read(f,i,j);

1. Почитай про файлы (есть тема в FAQ). Тебе нужно с самого начала разобраться с ними. Начни с создания своего файла и чтения. Простейшего, текстового. А потом перейдешь к более сложным..

2. Графический файл формата bmp устроен сложнее, чем ты думаешь. Посмотри здесь хотя бы: http://ru.wikipedia.org/wiki/BMP


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Ты рисуешь только одну точку.
Видишь ли ты ее на экране?
Если нет, то не совпадает ли она по цвету с фоном?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(andriano @ 15.12.2007 1:00) *

Ты рисуешь только одну точку.
Видишь ли ты ее на экране?
Если нет, то не совпадает ли она по цвету с фоном?

andriano, нельзя ли быть немного внимательнее? Неужели не видно, что до рисования точек дело не дойдет, потому что программа просто не скомпилируется?..
Прежде чем стучать по клаве, разберись в вопросе, и не вводи спрашивающего в заблуждение..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Что значит "внимательнее"? Я что, обязан попытаться запустить эту программу? У меня, кстати, Borland Pascal вообще не установлен, следовательно я ТОЧНО знаю, что у меня эта программа не скомпилируется просто потому, что InitGraph имеет другое количество параметров.
Я вижу в программе странное место, которое. по моему мнению, может содержать ошибку. Я об этом сообщаю. Или я не имею права ничего писать до тех пор, пока не выявлю ВСЕХ ошибок?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
что InitGraph имеет другое количество параметров.
А сколько надо параметров тогда?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Зависит от используемого компилятора.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


andriano
Цитата
я ТОЧНО знаю, что у меня эта программа не скомпилируется просто потому, что InitGraph имеет другое количество параметров.

Какое другое?
Судя по
Цитата
'd:\tp\BGI'
, используется компилятор Borland/Turbo Pascal, требующий именно три параметра. Как и указано в программе.
...
InitGraph(driver,mode,'d:\tp\BGI');
...

Цитата
Зависит от используемого компилятора.

Какого? В FPC тоже 3 параметра. В VP вообще нет Graph'а. ТМТ Pascal не поддерживает процедуру InitGraph.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Ozzя @ 15.12.2007 11:56) *
В FPC тоже 3 параметра. В VP вообще нет Graph'а. ТМТ Pascal не поддерживает процедуру InitGraph.
Правильно.
Именно ЭТО и называется "Зависит от используемого компилятора".
В частности, от компилятора (точнее, библиотеки) может зависеть НАЗВАНИЕ процедуры, устанавливающей графический режим. Поэтому вместо "не поддерживает процедуру" правильнее было бы написать "процедура называется иначе".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
Я что, обязан попытаться запустить эту программу?

mad.gif Ты знаешь, ты в принципе и отвечать-то не обязан. Но если уж взялся - то будь добр ВНИМАТЕЛЬНО посмотреть на название раздела. Это не "32-битные компиляторы", и не "Дельфи". Методом исключений - что у нас осталось?

Цитата
Я вижу в программе странное место, которое. по моему мнению, может содержать ошибку.
Странная особенность зрения, не находишь? ЯВНАЯ ошибка выше по тексту, которая препятствует компиляции программы, тобой замечена не была... Или может, в том компиляторе, которым ты пользуешься, это ТОЖЕ можно делать (я про вызов read как функции без перегрузки)?

Очень удобная привычка, кстати (или опять та же особенность зрения?): тебе показали, что используется TP (см. пост Оззи), но тебе НЕ ВЫГОДНО этого замечать, поэтому ты ОПЯТЬ начинаешь изворачиваться!



Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Я не понимаю, при чем здесь "выгода". (если для меня есть выгода, то в чем она будет состоять?)

Вопрос простой: что я должен сделать, если обнаружил ошибку в опубликованном исходнике? Имею ли я право сообщить о ней (вне зависимости от всех других содержащихся в исходнике ошибках), либо ДОЛЖЕН обнаружить ВСЕ ошибки прежде, чем что-либо написать?

То, что ТР у меня не установлен и, соответственно, проверить исходник на компилируемость я не могу, я уже писал.
Более того, Паскаль остается Паскалем вне зависимости от используемого компилятора. Особенности, конечно, должны обсуждаться в соответствующих разделах, но на то они и особенности. Задачи, насколько я понимаю, к таким особенностям не относятся.
Для задачи, как правило, важен алгоритм, а язык вообще может быть любой: хоть Си, хоть Паскаль, хоть Фортран, хоть Оберон...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(andriano @ 15.12.2007 10:56) *
Что значит "внимательнее"? Я что, обязан попытаться запустить эту программу?
"Внимательнее" означает ровно то, что означает это слово, и ни о какой компиляции я не говорил. Если ты берешься помогать, то сначала вникни. И сделай это, пожалуйста, внимательно. Иначе, повторяю, ты можешь ввести человека в заблуждение. Я не верю, что ты (с твоей квалификацией) мог не заметить неправильное использование Read или, скажем, несоответствие параметров при вызове процедуры. Поэтому я и делаю вывод, что ты просто не посмотрел в это место. И именно об этом я и говорю, когда советую тебе быть внимательнее.

Цитата(andriano @ 15.12.2007 13:43) *
Я не понимаю, при чем здесь "выгода".
Выгода - она оч-чень разная бывает.. В данном же случае (согласен с volvo) просто поражает твоя способность не признавать ошибки, переворачивать все с ног на голову (я уже писал об этом) и любой ценой доказывать, что ты был прав (в том и выгода). Эта тема - просто еще один пример твоей демагогии. Ты и сам на нее тратишь время, и других отвлекаешь. Прошу тебя, будь немного терпимее к критике. Мне нравится твой уровень и желание помочь. Я не хочу, чтобы ты уходил. Сбавь свою заносчивость, пожалуйста.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Цитата(andriano @ 15.12.2007 1:00) *

Ты рисуешь только одну точку.
Видишь ли ты ее на экране?
Если нет, то не совпадает ли она по цвету с фоном?


В том то исуть что ничего я не рисую(( Я ее откомпилировать то толком не могу..


Цитата(Lapp @ 15.12.2007 0:57) *
1. Почитай про файлы (есть тема в FAQ). Тебе нужно с самого начала разобраться с ними. Начни с создания своего файла и чтения. Простейшего, текстового. А потом перейдешь к более сложным..


У мну то в принципе с текстом то все норм...Просто первый раз вообще с БМПешками столкнулся, да и не так долго использую вообще Графический модуль...
А вот с чтением точки я что то уж точно как лубень поступил, просто зря я на ночь сел писать прогу
)))
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Гость @ 15.12.2007 17:50) *

У мну то в принципе с текстом то все норм...
...
А вот с чтением точки я что то уж точно как лубень поступил, просто зря я на ночь сел писать прогу
Не знаю, что ты называешь, нормально - и что ты называешь "текстом"? Файл формата бмп - это никак не текст!
Ты извини, но при взгляде на этот кусочек:
Цитата(Zetrok @ 14.12.2007 23:32) *

               For i  := 1 to n do
for j := 1 to m do
A[i,j]:= read(f,i,j);


- в голову приходят мысли только о человеке, который оооочень слабо знаком с программированием. Мало того, что read стоит в правой части - в нем еще и переменные цикла! Ну и, опять же - думать о бмп, что это просто набор точек - без заголовков, без палитр - это наивно..
Поэтому я просто не понимаю, что тебе посоветовать. Разве что то, что уже советовал. Научиться работать с файлами (не текстовыми) и ознакомиться с форматом бмп (см. ссылку выше). Может, еще разобраться с циклами..
На Форуме были темы про бмп, кажется. Можешь поискать. Но предыдущие советы это не отменяет...
Пиши по мере продвижения.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






Цитата(Lapp @ 16.12.2007 5:06) *

Не знаю, что ты называешь, нормально - и что ты называешь "текстом"? Файл формата бмп - это никак не текст!

То что БМП-не текстовый файл это я знаю..Текстом я называю фал формата .txt
Цитата(Lapp @ 16.12.2007 5:06) *

Мало того, что read стоит в правой части - в нем еще и переменные цикла!

Так вотименно про этоя писал когда говорил что поступил как лубень, Када я это с утра сам почитал то просто о..ел от того что я написал)
Цитата(Lapp @ 16.12.2007 5:06) *

Ну и, опять же - думать о бмп, что это просто набор точек - без заголовков, без палитр - это наивно..

Я знаю что в БМПшнике есть палитра,но вот если рисунок монохромный, то Я так думал не обязательно считывать
Цитата(Lapp @ 16.12.2007 5:06) *

Поэтому я просто не понимаю, что тебе посоветовать. Разве что то, что уже советовал. Научиться работать с файлами (не текстовыми) и ознакомиться с форматом бмп (см. ссылку выше).

Вот мой то вопрос как раз втом как считать?? Мне из БМПешника все что надо.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата
Вот мой то вопрос как раз втом как считать?? Мне из БМПешника все что надо.

1. Считать заголовок.
2. Разобрать его, выполнить необходимые проверки.
3. Вычислить длину битмапа.
4. Выделить память.
5. Считать битмап.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Цитата(andriano @ 16.12.2007 16:52) *

1. Считать заголовок.
2. Разобрать его, выполнить необходимые проверки.
3. Вычислить длину битмапа.
4. Выделить память.
5. Считать битмап.


Просто прикол в том что я не наю какими функциями это осуществлять((
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


blockread, getmem

Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гость






Цитата(andriano @ 16.12.2007 18:06) *

blockread, getmem


А мну надо в параметре тока переменную файла указывать..
то есть blockread(f) или как ???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


а ты открой справку по двум этим функциям и посмотри, как их использовать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 19:13
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name