I’m getting this error message under heavy load. Here is code abstract and message from my error log.
I tried everything I could think of. Any suggestion would be greatly appreciated.
Procedure tCacheInMemory.StreamValue(Name: String; IgnoreCase: Boolean; Var Stream: TStringStream);
Var
i: Integer;
Begin
i := 0;
Try
If Not active Then
exit;
arrayLock.BeginRead;
Try
i := Search(Name);
If i > -1 Then Begin
If fItems[i].value = Nil Then
exit;
fItems[i].value.Position := 0;
Stream.Position := 0;
Stream.CopyFrom(fItems[i].value, fItems[i].value.Size);
End;
Finally
arrayLock.EndRead;
End;
Except { ...execution jumps to here }
On E: Exception Do Begin
x.xLogError('LogErrorCacheInMemory.txt', 'StreamValue:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory) + endLn + 'StreamSize : ' + IntToStr(fItems[i].value.Size) + ' i=' + IntToStr(i) + 'Name: ' + Name);
Clear;
End
End;
End;
Log Entries:
3/10/2011 10:52:59 AM: StreamValue:Stream read error ItemsCount:7562 Memory:240816
StreamSize : 43 i=7506 Name: \xxxxxxxxWebRoot\images1x1.gif
3/10/2011 12:39:14 PM: StreamValue:Stream read error ItemsCount:10172 Memory:345808
StreamSize : 849 i=10108 Name: \xxxxxxxxWebRoot\cssscreen.add.css
3/10/2011 3:45:29 PM: StreamValue:Stream read error ItemsCount:11200 Memory:425464
StreamSize : 3743 i=11198 Name: \xxxxxxxxWebRoot\JSArtWeb.js
P.S.
arrayLock: TMultiReadExclusiveWriteSynchronizer;
fItems: Array Of rCache;
Type
rCache = Record
Name: String;
value: TStringStream;
expired: TDateTime;
End;
And calling function:
Function tCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream): Boolean;
Begin
Result := False;
If Not IfUseCache Then
exit;
BlobStream.SetSize(0);
BlobStream.Size := 0;
StreamValue(trim(cName), True, BlobStream);
If BlobStream.Size > 0 Then
Result := True;
End;
`
Wolf
9,4947 gold badges62 silver badges105 bronze badges
asked Mar 15, 2011 at 21:34
6
You’re not using correct locking. You’re acquiring a read lock on the array of cache entries, but once you find the item you want, you modify it. First, you explicitly modify it by assigning its Position
property, and then you implicitly modify it by reading from it, which modifies its Position
property again. When other code attempts to read from that same cache item, you’ll have interference. If the source stream’s Position
property changes between the time the destination stream calculates how many bytes are available and the time it actually requests to read those bytes, you’ll get a stream-read error.
I have a couple pieces of advice related to this:
- Don’t use streams as a storage device in the first place. You’re apparently holding the contents of files. You’re not going to change those, so you don’t need a data structure designed for making sequential changes. Instead, just store the data in simple arrays of bytes:
TBytes
. (Also, use ofTStringStream
in particular introduces confusion over whether those strings’ encodings are important. A simple file cache shouldn’t be concerned with string encodings at all. If you must use a stream, use a content-agnostic class likeTMemoryStream
.) - Don’t quell an exception that you haven’t actually handled. In this code, you’re catching all exception types, logging some information, clearing the cache, and then proceeding as though everything is normal. But you haven’t done anything to resolve the problem that triggered the exception, so everything is not normal. Since you’re not really handling the exception, you need to make sure it propagates to the caller. Call
raise
after to callClear
. (And when you log the exception, make sure you log the exception’sClassName
value as well as its message.)
answered Mar 15, 2011 at 23:19
Rob KennedyRob Kennedy
161k21 gold badges276 silver badges463 bronze badges
2
It looks like something external is blocking your stream files.
You could try to use Process Monitor to see what blocks it.
Another thing you can try is to open the stream in read-deny-write mode (please show us how you open the stream).
Something like this:
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;
Edit 1: Disregard the strike through part: you are using TStringStream.
I’ll keep the answer just in case anyone ever gets this kind of error when using TFileStream.
Edit 2: Yuriy posted this interesting addendum, but I’m not sure it will work, as the BlobStream
is not initialized, just like Robert Love suspected:
Function TCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream): Boolean;
Begin
Result := False;
Try
If Not IfUseCache Then
exit;
BlobStream.SetSize(0);
BlobStream.Size := 0;
StreamValue(trim(cName), True, BlobStream);
If BlobStream.Size > 0 Then
Result := True;
Except
On E: Exception Do
Begin
x.xLogError('LogErrorCacheInMemory.txt', 'CheckCacheOutStream:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory));
End;
End;
End;
—jeroen
answered Mar 15, 2011 at 21:55
5
I’m getting this error message under heavy load. Here is code abstract and message from my error log.
I tried everything I could think of. Any suggestion would be greatly appreciated.
Procedure tCacheInMemory.StreamValue(Name: String; IgnoreCase: Boolean; Var Stream: TStringStream);
Var
i: Integer;
Begin
i := 0;
Try
If Not active Then
exit;
arrayLock.BeginRead;
Try
i := Search(Name);
If i > -1 Then Begin
If fItems[i].value = Nil Then
exit;
fItems[i].value.Position := 0;
Stream.Position := 0;
Stream.CopyFrom(fItems[i].value, fItems[i].value.Size);
End;
Finally
arrayLock.EndRead;
End;
Except { ...execution jumps to here }
On E: Exception Do Begin
x.xLogError('LogErrorCacheInMemory.txt', 'StreamValue:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory) + endLn + 'StreamSize : ' + IntToStr(fItems[i].value.Size) + ' i=' + IntToStr(i) + 'Name: ' + Name);
Clear;
End
End;
End;
Log Entries:
3/10/2011 10:52:59 AM: StreamValue:Stream read error ItemsCount:7562 Memory:240816
StreamSize : 43 i=7506 Name: \xxxxxxxxWebRoot\images1x1.gif
3/10/2011 12:39:14 PM: StreamValue:Stream read error ItemsCount:10172 Memory:345808
StreamSize : 849 i=10108 Name: \xxxxxxxxWebRoot\cssscreen.add.css
3/10/2011 3:45:29 PM: StreamValue:Stream read error ItemsCount:11200 Memory:425464
StreamSize : 3743 i=11198 Name: \xxxxxxxxWebRoot\JSArtWeb.js
P.S.
arrayLock: TMultiReadExclusiveWriteSynchronizer;
fItems: Array Of rCache;
Type
rCache = Record
Name: String;
value: TStringStream;
expired: TDateTime;
End;
And calling function:
Function tCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream): Boolean;
Begin
Result := False;
If Not IfUseCache Then
exit;
BlobStream.SetSize(0);
BlobStream.Size := 0;
StreamValue(trim(cName), True, BlobStream);
If BlobStream.Size > 0 Then
Result := True;
End;
`
Wolf
9,4947 gold badges62 silver badges105 bronze badges
asked Mar 15, 2011 at 21:34
6
You’re not using correct locking. You’re acquiring a read lock on the array of cache entries, but once you find the item you want, you modify it. First, you explicitly modify it by assigning its Position
property, and then you implicitly modify it by reading from it, which modifies its Position
property again. When other code attempts to read from that same cache item, you’ll have interference. If the source stream’s Position
property changes between the time the destination stream calculates how many bytes are available and the time it actually requests to read those bytes, you’ll get a stream-read error.
I have a couple pieces of advice related to this:
- Don’t use streams as a storage device in the first place. You’re apparently holding the contents of files. You’re not going to change those, so you don’t need a data structure designed for making sequential changes. Instead, just store the data in simple arrays of bytes:
TBytes
. (Also, use ofTStringStream
in particular introduces confusion over whether those strings’ encodings are important. A simple file cache shouldn’t be concerned with string encodings at all. If you must use a stream, use a content-agnostic class likeTMemoryStream
.) - Don’t quell an exception that you haven’t actually handled. In this code, you’re catching all exception types, logging some information, clearing the cache, and then proceeding as though everything is normal. But you haven’t done anything to resolve the problem that triggered the exception, so everything is not normal. Since you’re not really handling the exception, you need to make sure it propagates to the caller. Call
raise
after to callClear
. (And when you log the exception, make sure you log the exception’sClassName
value as well as its message.)
answered Mar 15, 2011 at 23:19
Rob KennedyRob Kennedy
161k21 gold badges276 silver badges463 bronze badges
2
It looks like something external is blocking your stream files.
You could try to use Process Monitor to see what blocks it.
Another thing you can try is to open the stream in read-deny-write mode (please show us how you open the stream).
Something like this:
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;
Edit 1: Disregard the strike through part: you are using TStringStream.
I’ll keep the answer just in case anyone ever gets this kind of error when using TFileStream.
Edit 2: Yuriy posted this interesting addendum, but I’m not sure it will work, as the BlobStream
is not initialized, just like Robert Love suspected:
Function TCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream): Boolean;
Begin
Result := False;
Try
If Not IfUseCache Then
exit;
BlobStream.SetSize(0);
BlobStream.Size := 0;
StreamValue(trim(cName), True, BlobStream);
If BlobStream.Size > 0 Then
Result := True;
Except
On E: Exception Do
Begin
x.xLogError('LogErrorCacheInMemory.txt', 'CheckCacheOutStream:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory));
End;
End;
End;
—jeroen
answered Mar 15, 2011 at 21:55
5
Ошибка Stream Read Error возникает, когда серверу приложений ЛОЦМАН не достаточно памяти для того, чтобы вернуть все объекты в базу данных.
Если после возникновения ошибки открыть диспетчер задач, то можно увидеть, что скорее всего использованы все доступные ресурсы оперативной и виртуальной памяти. Проблема скорее системная.
Сервер приложений ЛОЦМАН:PLM не ограничивает размер сохраняемого файла.
Существует ограничение ADO/OLEDB (интерфейс MS SQL Server): при работе с файлами требуется
НЕПРЕРЫВНЫЙ БЛОК ПАМЯТИ РАЗМЕРА СООТВЕТСТВУЮЩЕГО ФАЙЛУ
, который не всегда доступен в системе (даже небольшого размера) — это зависит от степени фрагментированности оперативной памяти.
При использовании Файлового архива это ограничение не действует,
В СУБД Oracle описанная проблема не возникает.
В том случае, если ошибка возникает при наличии файлового архива, в первую очередь необходимо проверить наличие свободного места в архиве.
Свободное место, доступное для файлового архива указано в ЦУК:
Файловые архивы — [имя файлового архива] справа в информационной области.
Объем памяти, свободный в архиве, и объем памяти доступный на ресурсе где расположен архив не одно и то же!
Так, под архив может быть выделено 50Гб, а на диске свободно 500Гб.
Архив сможет использовать только выделенные ему 50Гб, не зависимо от того, сколько памяти доступно на диске.
Например, в архиве доступно 0,008 Мб, при сохранении файла объемом 30Мб возникает ошибка
Out of memory, Error creating variant or safe array.
Необходимо открыть свойства файлового архива и увеличить максимальный размер архива, в зависимости от потребностей.
Рекомендации по избежанию проблемы:
-
Используйте файловый архив.
Перенесите файлы из базы данных в него.
Для хранения большого объема файлов лучше использовать файловый архив, а не таблицы базы данных.
Подробнее о создании и о работе с файловыми архивами описано в справке на ЦУК/ЛОЦМАН Администратор. - Старайтесь чаще сохранять информацию в БД малыми порциями, тогда вероятность появления упомянутой ошибки снизится.
- Установка дополнительных модулей оперативной памяти на машине, где работает сервер приложений ЛОЦМАН.
Тема: Ошибка при сохранении архива ФН в формате *.fnc ( «Stream read error» в FN RUN ) (Прочитано 7720 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Доброго времени суток!
Временами сталкиваюсь с проблемой чтения архива ФН, которые отрабатывают свой срок эксплуатации на автономках. Так как в ЛК НИ без приложения архива перерегистрировать ККТ нет возможности, оправляем клиентов в налоговую с ФН-ом, и там почему-то перерегистрируют без проблем.
Причём, ФН каждый раз исправный, все документы отправлены в ОФД, архив закрыт (фаза жизни 15). Через FN RUN все документы прекрасно считываются для сохранения в формате *.csv . Но ни одна программа (FN Arc, FNtransfer, FN RUN) не может сохранить архив в формате *.fnc . FN RUN при прочтении пишет «Stream read error», а если выгрузить архив через FN Arc и прочитать через ConvertFNC, то вместо каждого документа:
9999 Сообщение об ошибке
Ошибка ФН, код525
Может кто сталкивался, как победить?
Так как такая история только на автономках, предполагаю, что это как-то связано с каким-то полем/полями из этих: наименование ОФД, адрес проверки чеков, адрес отправителя чеков.
Влияет ли на ФН в автономке то, что в них забито? Или то, что они пустые?
Записан
Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…
В новых версиях FN_RUN есть конвертер из arh в fnc. Сохранаешь архив в формате arh а затем делаешь конвертацию в fnc.
Записан
Это сообщение считают полезным: Kasmech
Временами сталкиваюсь с проблемой чтения архива ФН, которые отрабатывают свой срок эксплуатации на автономках.
все документы отправлены в ОФД, архив закрыт (фаза жизни 15)
Так как такая история только на автономках,
Это как? В автономе и отправлены в ОФД?
Записан
Доброго времени суток!
Временами сталкиваюсь с проблемой чтения архива ФН, которые отрабатывают свой срок эксплуатации на автономках. Так как в ЛК НИ без приложения архива перерегистрировать ККТ нет возможности, оправляем клиентов в налоговую с ФН-ом, и там почему-то перерегистрируют без проблем.
Причём, ФН каждый раз исправный, все документы отправлены в ОФД, архив закрыт (фаза жизни 15). Через FN RUN все документы прекрасно считываются для сохранения в формате *.csv . Но ни одна программа (FN Arc, FNtransfer, FN RUN) не может сохранить архив в формате *.fnc . FN RUN при прочтении пишет «Stream read error», а если выгрузить архив через FN Arc и прочитать через ConvertFNC, то вместо каждого документа:
9999 Сообщение об ошибке
Ошибка ФН, код525
Может кто сталкивался, как победить?
Так как такая история только на автономках, предполагаю, что это как-то связано с каким-то полем/полями из этих: наименование ОФД, адрес проверки чеков, адрес отправителя чеков.
Влияет ли на ФН в автономке то, что в них забито? Или то, что они пустые?
Воткни ФН в фр от АТОЛ и прочитай архив атоловской утилитой
Записан
«Боже мой, да всем насрать!» ©
В новых версиях FN_RUN есть конвертер из arh в fnc
Спасибо! Вот это я и искал. Попробую на следующем проблемном.
Записан
Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…
Это как? В автономе и отправлены в ОФД?
Ну, не придирайтесь уж Я к тому, что фаза жизни 15 а не 7.
Записан
Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…
Воткни ФН в фр от АТОЛ и прочитай архив атоловской утилитой
Тоже неплохо. Только вот вопрос: по времени чтения как быстро будет? Она по одному доку запрашивает или страницами (если я правильно понимаю, речь идёт об «FNArchiveReader»)?
Записан
Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…
Воткни ФН в фр от АТОЛ и прочитай архив атоловской утилитой
Тоже неплохо. Только вот вопрос: по времени чтения как быстро будет? Она по одному доку запрашивает или страницами (если я правильно понимаю, речь идёт об «FNArchiveReader»)?
Быстро, минуты 3
Записан
«Боже мой, да всем насрать!» ©
Это сообщение считают полезным: Kasmech
У меня другая проблема.
Раньше всё сохранялось нормально. А месяца два назад непонятно с чего при попытке сохранения в
формат fnc, выдается ошибка «дд.мм.гггг чч:мм is not valid date and time». дата и время указывается
открытия первой смены. Пробовал на трех компьютерах, результат одинаковый.
В формат arh сохраняет, но при попытке преобразования в fnc, та же ошибка.
Windows 7 x64.
Записан
У меня другая проблема.
Раньше всё сохранялось нормально. А месяца два назад непонятно с чего при попытке сохранения в
формат fnc, выдается ошибка «дд.мм.гггг чч:мм is not valid date and time». дата и время указывается
открытия первой смены. Пробовал на трех компьютерах, результат одинаковый.
В формат arh сохраняет, но при попытке преобразования в fnc, та же ошибка.
Windows 7 x64.
Через ФР АТОЛ попробуйте считать. Софтиной от АТОЛ.
Записан
«Боже мой, да всем насрать!» ©
Подключил к АТОЛУ. Касса написала «ФН не из этой ККТ» и устроила дискотеку. В Атоловской утилите все кнопки неактивны. Попробовал считать утилитой от «Атлас Карт» (благо что чеков немного). Утилита показала выгрузку архива ФН, но в конце выдала «Фатальная ошибка ФН — Успешное выполнение». При попытке просмотреть — всё чисто.
Записан
Бумньон
Записан
Записан
Это сообщение считают полезным: vvm
Воскрешаю, т.к. столкнулся и нигде не нашел решения.
Оказалось всё предельно просто: вместо модных утилит надо использовать FNCnt от производителя (можно скачать на сайте Инвенты в разделе Техническая поддержка).
http://support.inventa.su/confluence/pages/viewpage.action?pageId=2326558
У конторы с миллиардными оборотами не нашлось денег ни на домен RU, ни на бесплатный SSL
Записан
«Боже мой, да всем насрать!» ©
Бумньон
Записан
Записан
Новая версия FNArc не помогла, видимо сначала была касса автономная, а потом стала с ОФД. Поэтому файл не выгружается
Записан
Как писали выше, когда в ошибку падал FN_RUN использовал Атол с их программой выгрузки…
И да опять же пишут верно, ККТ пишет ФН не из той ККТ и устаривает дискотеку.. ну и что ? берёте и дальше выгружаете под музыку
Примечание: неактивные кнопки внутри программы выгрузки от АТОЛ говорит о том, что не установлен НУЖНЫЙ ей драйвер…(старые программы требуют 8 версию драйвера)
Записан
- Форум vvm »
- Главная категория »
- Онлайн кассы »
- ФН / МГМ »
- Ошибка при сохранении архива ФН в формате *.fnc ( «Stream read error» в FN RUN )
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
#1 29 марта 2021 09:58:31
- Dyaka
- Участник
- Неактивен
- На форуме с 29 марта 2021
- Сообщений: 5
Тема: Ошибка Stream Read Error
Добрый день! Не нашел решения проблемы по данному вопросу. При входе в программу и выполнении любого действия у пользователя вылетает ошибка Stream read error. У остальных пользователей все нормально. Переустановка не помогает.
#2 Ответ от Олег Зырянов 29 марта 2021 10:07:56
- Олег Зырянов
- Технический руководитель
- Неактивен
- Откуда: Новосибирск
- На форуме с 10 декабря 2008
- Сообщений: 4,183
Re: Ошибка Stream Read Error
Здравствуйте! Запустите конфигурацию TechnologiCS с ключом /skipreg или удалите вручную *.cfg файлы https://help.technologics.ru/7.9/TCSHelp/_876.htm
Больше всего похожена это. Хотя. Что значит при выполнении любого действия? Программа то работает в итоге?
#3 Ответ от Dyaka 29 марта 2021 10:58:21
- Dyaka
- Участник
- Неактивен
- На форуме с 29 марта 2021
- Сообщений: 5
Re: Ошибка Stream Read Error
Олег Зырянов пишет:
Здравствуйте! Запустите конфигурацию TechnologiCS с ключом /skipreg или удалите вручную *.cfg файлы https://help.technologics.ru/7.9/TCSHelp/_876.htm
Больше всего похожена это. Хотя. Что значит при выполнении любого действия? Программа то работает в итоге?
Работает, пользователь логинится, но после каждого действия вылетает данная ошибка. Запуск с ключом и удаление .cfg файлов не помогло
#4 Ответ от Олег Зырянов 29 марта 2021 11:06:08
- Олег Зырянов
- Технический руководитель
- Неактивен
- Откуда: Новосибирск
- На форуме с 10 декабря 2008
- Сообщений: 4,183
Re: Ошибка Stream Read Error
А можно точную версию TechnologiCS , и более подробное описание того что просходит, послеlовательно по шагам.
В идеале чтобы шаги эти повторялись, а не были случайными. То есть делаем — ошибка. Еще раз делаем — та же ошибка. Перезапустили TCS, повторяем -снова ошибка эта.
#5 Ответ от Dyaka 29 марта 2021 11:17:06
- Dyaka
- Участник
- Неактивен
- На форуме с 29 марта 2021
- Сообщений: 5
Re: Ошибка Stream Read Error
Олег Зырянов пишет:
А можно точную версию TechnologiCS , и более подробное описание того что просходит, послеlовательно по шагам.
В идеале чтобы шаги эти повторялись, а не были случайными. То есть делаем — ошибка. Еще раз делаем — та же ошибка. Перезапустили TCS, повторяем -снова ошибка эта.
У пользователя версия 5.7.0.0. Я не большой эксперт этой программы, опишу, как могу. Пользователь логинится, программа загружается, пишет о новых сообщениях, закрываем окно, и вылетает окошко с ошибкой Stream read error. Пользователь его закрывает, делает любой отчет, макрос, ошибка снова вылетает, но действие выполняется. В целом, все работает, просто после каждого действия пользователя с момента входа вылетает окошко с ошибкой.
#6 Ответ от Олег Зырянов 29 марта 2021 11:28:08
- Олег Зырянов
- Технический руководитель
- Неактивен
- Откуда: Новосибирск
- На форуме с 10 декабря 2008
- Сообщений: 4,183
Re: Ошибка Stream Read Error
Можно еще скриншот ошибки.
И… Если пользователье ничего не делает, просто откроет справочник на просмотр, ну и допустим просто иногда открывает форму редактирования, ничего не меняет, закрывает (то есть режим просмотр). Ошибка будет?
#7 Ответ от Dyaka 29 марта 2021 11:39:40 (изменено: , 29 марта 2021 11:39:40)
- Dyaka
- Участник
- Неактивен
- На форуме с 29 марта 2021
- Сообщений: 5
Re: Ошибка Stream Read Error
Олег Зырянов пишет:
Можно еще скриншот ошибки.
И… Если пользователье ничего не делает, просто откроет справочник на просмотр, ну и допустим просто иногда открывает форму редактирования, ничего не меняет, закрывает (то есть режим просмотр). Ошибка будет?
Извиняюсь за качество, как прислали мне. После закрытия окна ошибки и простого просмотра форм ошибка не возникает. Когда пользователь подписывает какой-то документ она снова появляется. При этом документ подписывается (последнее со слов пользователя).
Олег Зырянов пишет:
Можно еще скриншот ошибки.
И… Если пользователье ничего не делает, просто откроет справочник на просмотр, ну и допустим просто иногда открывает форму редактирования, ничего не меняет, закрывает (то есть режим просмотр). Ошибка будет?
Post’s attachments
image0011.jpg
image0011.jpg 27.33 Кб, 6 скачиваний с 2021-03-29
You don’t have the permssions to download the attachments of this post.
#8 Ответ от Олег Зырянов 30 марта 2021 08:11:54
- Олег Зырянов
- Технический руководитель
- Неактивен
- Откуда: Новосибирск
- На форуме с 10 декабря 2008
- Сообщений: 4,183
Re: Ошибка Stream Read Error
А скажите еще полную версию. До билда.
В 5.7 была нехорошая ошибка,правда вряд ли она бы так проявлялась, но все же.
#9 Ответ от Dyaka 30 марта 2021 14:29:37
- Dyaka
- Участник
- Неактивен
- На форуме с 29 марта 2021
- Сообщений: 5
Re: Ошибка Stream Read Error
Олег Зырянов пишет:
А скажите еще полную версию. До билда.
В 5.7 была нехорошая ошибка,правда вряд ли она бы так проявлялась, но все же.
10968
#10 Ответ от Олег Зырянов 30 марта 2021 15:32:51
- Олег Зырянов
- Технический руководитель
- Неактивен
- Откуда: Новосибирск
- На форуме с 10 декабря 2008
- Сообщений: 4,183
Re: Ошибка Stream Read Error
Есть новее на сайте, но не критично наверное http://www.technologics.ru/download/addition/v5.html.
Давайте еще версию операционной системы и содержимое файла csdn.ini (тот что в папке программы и тот что в профиле пользователя — точно не подскажу, 5.7 старая и как она точно работает уже мало кто помнит)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Issue:
When you open Structural Bridge Design you get an error message “Stream read error” and the program fails to start.
Causes:
This issue is caused by corrupt data in the registry entry used by Structural Bridge Design to store details about the program state and/or by the temporary files the program creates.
Solution:
Warning: Improperly editing the Windows® registry could render your operating system unusable. Microsoft® provides a wealth of critical information that you need to know about the registry in the Microsoft Knowledge Base at http://support.microsoft.com/support.
Use the Microsoft® Registry Editor at your own risk and only after backing up the registry. Instructions on backing up your registry can be found in the following Microsoft Knowledge Base articles:
- Back up the registry in Windows 7
- Back up the registry in Windows Vista
- How to back up and restore the registry in Windows XP
Additional information about the registry is available in the Help topics in the Microsoft Registry Editor.
Delete SBDSession key from Windows registry
- Log on to the workstation as a member of the local Administrators group.
- Launch the Run dialog by typing [Windows key] + R (Windows 8/Windows 7) or clicking Start > Run (Windows XP).
- In the Run dialog, enter REGEDIT in the “Open” edit field and click OK.
- In the Registry Editor, locate and delete the following subkey:
HKEY_CURRENT_USERSoftwareAutodeskStructural Bridge DesignSession
- Close the Registry Editor.
Delete ASBD2014 product folder
- Delete the following user profile folder (substitute your login name for %username%):
Windows 8/Windows 7
C:Users%username%AppDataRoamingAutodeskASBD2014
Windows XP
C:Documents and Settings%username%Application DataAutodeskASBD2014
Windows 8 and Windows 7: Depending on your system settings, Windows Explorer may not automatically display all the subfolders under the Users folder. If you cannot locate these folders by navigating to the folder, copy and paste the above folder locations into the Windows Explorer address bar.
The program will now start successfully.
Products:
Structural Bridge Design;
1 / 1 / 0 Регистрация: 27.03.2018 Сообщений: 93 |
|
1 |
|
23.05.2020, 11:58. Показов 3528. Ответов 7
Подскажите, что делаю не так.
__________________
0 |
Супер-модератор 32457 / 20949 / 8107 Регистрация: 22.10.2011 Сообщений: 36,218 Записей в блоге: 7 |
|
23.05.2020, 12:22 |
2 |
Как именно в БД загружаются изображения?
0 |
1 / 1 / 0 Регистрация: 27.03.2018 Сообщений: 93 |
|
23.05.2020, 12:33 [ТС] |
3 |
через Lazarus загрузку пока не реализовал. Загружаю через Firebird напрямую в таблицу
0 |
Супер-модератор 32457 / 20949 / 8107 Регистрация: 22.10.2011 Сообщений: 36,218 Записей в блоге: 7 |
|
23.05.2020, 12:42 |
4 |
Вот отсюда и проблема. Когда будет загружено через Лазарус — будет работать.
0 |
1 / 1 / 0 Регистрация: 27.03.2018 Сообщений: 93 |
|
23.05.2020, 12:47 [ТС] |
5 |
ищу реализацию загрузки картинки по кнопке. может подскажите где посмотреть?
0 |
Супер-модератор 32457 / 20949 / 8107 Регистрация: 22.10.2011 Сообщений: 36,218 Записей в блоге: 7 |
|
23.05.2020, 12:52 |
6 |
Сообщение было отмечено salaev как решение Решение
1 |
1 / 1 / 0 Регистрация: 27.03.2018 Сообщений: 93 |
|
23.05.2020, 14:56 [ТС] |
7 |
Спасибо огромное. Работает. Миниатюры
0 |
1 / 1 / 0 Регистрация: 27.03.2018 Сообщений: 93 |
|
23.05.2020, 15:25 [ТС] |
8 |
и еще… 1. От первого, после открытия проги, клика «Добавить фото» до открытия окна проходит примерно 15 секунд, последующие добавления — около 5 секунд. Это решимо?
0 |
ВНИМАНИЕ!
Stream read error, возникает ошибка |
25.11.2011 19:34 Сообщение |
|
Профи
Группа: Пользователи Репутация: 10 |
Доброго дня ув. форумчане. Сталкнулся с такой проблемой — моя Delphi программа работает с файлом и при каждом своём запуске считывает информацию с него (формат .bmp). В рандомном порядке я получаю ошибку Stream read error, которая обычно возникает, когда какое-либо другое приложение так же пользуется этим файлом. Но я проверил и ни 1 из приложений не может использовать этот файл — так же просто перезагружал компьютер и первым делом запускал программу — тоже самое, хотя на автозапуске системы никаких лишних программ нету. Буду рад любым мыслям и идеям. ——————— Цитата Imagination is more important than knowledge. Albert Einstein |
|
|
IUnknown |
25.11.2011 22:41 Сообщение |
Гуру
Группа: Пользователи Репутация: 627 |
Цитата Но я проверил и ни 1 из приложений не может использовать этот файл — так же просто перезагружал компьютер и первым делом запускал программу — тоже самое, хотя на автозапуске системы никаких лишних программ нету. Значит, предположение о том, что что-то держит файл — неверное. Показывай код, выдающий ошибку, либо обращайся к телепатам за помощью. Без исходника ничего сказать невозможно. |
|
|
Tan |
25.11.2011 22:47 Сообщение |
Профи
Группа: Пользователи Репутация: 10 |
Cпасибо за ответ. Есть картинка 256 x 256, переменная TexFileName содержит название файла, что находится в корневой директории проекта. const ——————— Цитата Imagination is more important than knowledge. Albert Einstein |
|
|
IUnknown |
25.11.2011 22:53 Сообщение |
Гуру
Группа: Пользователи Репутация: 627 |
Картинка чем создавалась? Фотошопом? Попробуй ее пересохранить другим редактором, GIMP-ом, или ACDSee, к примеру. На RSDN как-то была тема, что сохраненные фотошопом битмапы не грузятся через LoadFromFile, а пересохраненные (их размер — на 2 байта меньше, чем у фотошопленных) — прекрасно грузятся. |
|
|
Tan |
26.11.2011 2:48 Сообщение |
Профи
Группа: Пользователи Репутация: 10 |
Да Photoshop. Тупо пересохранил через Paint, на мой взгляд проблема исчезла, никогда в жизни бы не подумал, что виноват редактор, ведь формат .bmp в теории не должен менять своей структуры в зависимости от редактора. Большое спасибо за помощь. Сообщение отредактировано: Tan — 26.11.2011 2:48 ——————— Цитата Imagination is more important than knowledge. Albert Einstein |
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
Связь с администрацией: bu_gen в домене octagram.name