[Решено] Ошибка "File not open" при чтении файла

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

artem78 писал(а):Для моих нужд вполне достаточно. Из памяти мне не нужно, только из файла.
Главное поменьше использовать легаси функции ( AssignFile, Reset,Read, CloseFile и т.п. ) как выясняется в лазарусе у них не полная реализация (Разумеется можно и наоборот "спуститься" еще ниже и работать с файлами через winapi (там "все стабильно как на кладбище" ) но это уже (ИМХО) полные мраки )
artem78
новенький
Сообщения: 50
Зарегистрирован: 09.08.2015 17:52:24

Сообщение artem78 »

Alex2013 писал(а):Главное поменьше использовать легаси функции
Наверно, вы правы.
Аватара пользователя
Vapaamies
постоялец
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vapaamies »

В Delphi была проблема с TFileStream: при создании через fmCreate стоял запрет на совместное чтение, даже Far не мог читать. Писал свои классы-обертки над WinAPI, в них всё работало.
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Vapaamies писал(а):В Delphi была проблема с TFileStream: при создании через fmCreate стоял запрет на совместное чтение, даже Far не мог читать. Писал свои классы-обертки над WinAPI, в них всё работало.
В лазарусе кажется ситуация "с точностью до наоборот" TFileStream работает надежно, а легаси (AssignFile, Reset,Read, CloseFile..) увы, невсегда. Думаю что дело в том, что их лазарус-реализация была выполнена еще в "ветхозаветные времена" когда существовал только FPC и с тех пор почти не обновлялась. А в дельфи "легаси" переписывалось не однократно (потому что там много раз "резко" переписывали компилятор "почти с нуля" и библиотеки нижнего уровня как минимум тщательно проверялись), а вот с TFileStream как раз наоборот решили "работает и ладно" и он "остался как есть" со времен первых версий.
svk12
постоялец
Сообщения: 411
Зарегистрирован: 09.06.2008 18:42:47

Сообщение svk12 »

Попробуйте TStringList.LoadFromFile.
Ответить