|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вопрос по поводу потоков
В програме TMemoryStream используется для хранения програмно созданого масива TImage и записи/загрузки его в файл. При загрузке элементов из файла в поток незнаю как опредилить количество элементов в потоке, а когда выходит за последний элемент в потоке пишет ошибку:
Project Project.exe raised exception class EReadError with massage "Invelid stream format". Process stopped. Use Step pr Run to Continue.Как можно выйти из положения? может не тот клас выбрал для потока? |
#2
|
||||
|
||||
Можно как вариант, воспользоваться Try ..Except.. end;
Когда ловится исключение выходить из цикла записи/чтения. Код:
Try //Ваш код Except //Можно ещё определить тип ошибки, как это сделать точно не помню. //Если тип ошибки тот что вы описали ниже тогда break; end; "Люди никогда не видят то, существование чего им кажется невозможным." ©Терри Пратчетт |
#3
|
|||
|
|||
Цитата:
Код:
on EInvalidImage do Последний раз редактировалось LeNiN Dee, 22.02.2008 в 21:48. |
#4
|
||||
|
||||
Может стоит воспользоваться свойствами TMemoryStream
такими как Size и Position ?(нарисовал бы кусочек кода где ошибка чтоб понятней было) |
#5
|
|||
|
|||
Цитата:
Спасибо за идею надо всеволишь сравнить Position и Size. Код:
while Stream_.Position<Stream_.Size do begin //обработка end; "Все гениальное - просто" (А. Эйнштейн) |