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

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Stream read error, возникает ошибка
Tan
сообщение 25.11.2011 15:34
Сообщение #1


Профи
****

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

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


Доброго дня ув. форумчане. Сталкнулся с такой проблемой - моя Delphi программа работает с файлом и при каждом своём запуске считывает информацию с него (формат .bmp). В рандомном порядке я получаю ошибку Stream read error, которая обычно возникает, когда какое-либо другое приложение так же пользуется этим файлом. Но я проверил и ни 1 из приложений не может использовать этот файл - так же просто перезагружал компьютер и первым делом запускал программу - тоже самое, хотя на автозапуске системы никаких лишних программ нету. Буду рад любым мыслям и идеям.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 25.11.2011 18:41
Сообщение #2


a.k.a. volvo877
*****

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

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


Цитата
Но я проверил и ни 1 из приложений не может использовать этот файл - так же просто перезагружал компьютер и первым делом запускал программу - тоже самое, хотя на автозапуске системы никаких лишних программ нету.
Значит, предположение о том, что что-то держит файл - неверное. Показывай код, выдающий ошибку, либо обращайся к телепатам за помощью. Без исходника ничего сказать невозможно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 25.11.2011 18:47
Сообщение #3


Профи
****

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

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


Cпасибо за ответ. Есть картинка 256 x 256, переменная TexFileName содержит название файла, что находится в корневой директории проекта.

const
TexWidth = 256;
TexHeight = 256;
...
TexSizeX := TexWidth;
TexSizeY := TexHeight;
bitmap := TBitmap.Create;
bitmap.LoadFromFile(TexFileName);
For i := 0 to TexSizeX - 1 do // вот сюда кидает программу когда выдаётся ошибка
For j := 0 to TexSizeY - 1 do
begin
bits [i, j, 0] := GetRValue(bitmap.Canvas.Pixels[i,j]);
bits [i, j, 1] := GetGValue(bitmap.Canvas.Pixels[i,j]);
bits [i, j, 2] := GetBValue(bitmap.Canvas.Pixels[i,j]);
end;


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 25.11.2011 18:53
Сообщение #4


a.k.a. volvo877
*****

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

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


Картинка чем создавалась? Фотошопом? Попробуй ее пересохранить другим редактором, GIMP-ом, или ACDSee, к примеру. На RSDN как-то была тема, что сохраненные фотошопом битмапы не грузятся через LoadFromFile, а пересохраненные (их размер - на 2 байта меньше, чем у фотошопленных) - прекрасно грузятся.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 25.11.2011 22:48
Сообщение #5


Профи
****

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

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


Да Photoshop. Тупо пересохранил через Paint, на мой взгляд проблема исчезла, никогда в жизни бы не подумал, что виноват редактор, ведь формат .bmp в теории не должен менять своей структуры в зависимости от редактора. Большое спасибо за помощь.

Сообщение отредактировано: Tan - 25.11.2011 22:48


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.04.2024 17:10
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"