Вверх ↑
Ответов: 4621
Рейтинг: 746
#1: 2021-10-15 14:46:53 ЛС | профиль | цитата

Add(FileStream,5579189,483,329)
{
Point(doPosition)
link(onLoad,7672151:doEvent1,[])
}
Add(Button,6901598,315,329)
{
Left=10
Top=10
link(onClick,10644980:doExecute,[])
}
Add(ODialog,10644980,371,329)
{
link(onExecute,5579189:doOpen,[])
}
Add(Memo,8413688,875,434)
{
Left=5
Top=45
Width=250
Height=250
ScrollBars=3
}
Add(MainForm,6044688,385,182)
{
Height=347
Caption="Пример использования компонента FileStream"
}
Add(Hub,7672151,532,329)
{
link(onEvent1,7228710:doFor,[(581,335)(581,433)])
link(onEvent2,5579189:doClose,[(565,342)(565,382)(443,382)(443,342)])
}
Add(For,7228710,616,427)
{
IncludeEnd=1
link(onEvent,8206227:doEvent1,[])
link(End,5579189:Size,[(629,402)(496,402)])
}
Add(Convertor,7177771,798,434)
{
Mode=6
link(onResult,8413688:doAdd,[])
}
Add(DataToFileEx,15470337,721,434)
{
BigEndian=0
Point(doPosition)
link(onGet,7177771:doConvert,[])
link(Stream,5579189:Stream,[(727,416)(489,416)])
}
Add(Hub,8206227,665,427)
{
link(onEvent2,15470337:doGet,[])
}

Вероятно, данные из диалога выбора файла попадали на вход компонента For и сбивали начальное значение цикла. Надо следить за подаваемыми на компоненты данными.
1) Работать с файлом надо после того как этот файл успешно открыт - после события FileStream.onLoad, а не выбора файла в диалоге.
2) После чтения/записи любых данных из файла Position автоматически сдвигается вперед на "после прочитанных данных" - необязательно двигать её вручную (если только не надо установить в какую-то другую позицию).
карма: 26

0