Ничего не понимаю...
У меня ReadLn не работает...
Кликните, пожалуйста, у себя Ctrl+клик на ReadLn.
В каком uses находится ReadLn? (для текстовых файлов)
.
У меня ReadLn - не работает...
Модератор: Модераторы
ReadLn находится в модуле System, который подключен всегда вне вашего желания.
Поэтому, скорее всего, вы просто перекрыли System.ReadLn одноимённой процедурой в своём коде. Попробуйте в нужном месте вписать System.ReadLn в место ReadLn.
Поэтому, скорее всего, вы просто перекрыли System.ReadLn одноимённой процедурой в своём коде. Попробуйте в нужном месте вписать System.ReadLn в место ReadLn.
bormant писал(а):ReadLn находится в модуле System
Юмор в том что его там нет...
Но ReadLn - начал работать, только я всё равно - не могу посмотреть где он лежит...
т.к. Ctrl+клик на ReadLn не работает.
Assign - показывает.
Reset - показывает.
Close(f); - показывает.
А ReadLn - нет... и простым поиском его в System нет, хотя там: и Assign и Reset и Close...
Но это ужен не актуально, т.к. файл начал считываться и я прочитал то, что хотел и запустил cdecl.
правда только текстовый файл, а не форматированный.
Спасибо Вам.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Readln не существует в виде процедуры, она преобразуется в последовательность вызовов fpc_read_text_sint, fpc_read_text_float и т.д.
Sergei I. Gorelkin писал(а):Readln не существует в виде процедуры, она преобразуется в последовательность вызовов fpc_read_text_sint, fpc_read_text_float и т.д.
Спасибо - большое, добрый Sergei I. Gorelkin
и "не находится реализация ReadLn" -- несколько разные вещи. А так да, Read(Ln)/Write(Ln)/Str -- compiler magic -- операторы/процедуры, созданные надъязыковыми средствами, вместо них компилятор подставляет специфичные случаю реализации.ReadLn не работает
bormant писал(а):и "не находится реализация ReadLn" -- несколько разные вещи.
Нет он у меня вначале отказывался работать, т.к. в Вашем примере было ReadLn(f,n); где n: integer; и он выдавал ошибку. когда заменил на String всё стало работать. И тестовые файлы грузятся и cdecl работает. А вот мои файлы, я пока ещё не дешифровал...
Но зато благодаря Вам понял систему программирования того программиста который писал модуль.
Теперь пытаюсь понять как его модуль дешифровал форматированный файл...
Самое обидное, что модуль возможно не работает из-за несовместимости или не того порядка в инициализации uses'ов...
/
Текстовые файлы лучше всего читать-писать через TStringList или если читается только часть файла через TFileStream
А кроме того с ошибками в/в через исключения работать надежнее
Что-то вроде ...
А кроме того с ошибками в/в через исключения работать надежнее
Что-то вроде ...
Код: Выделить всё
Function ReadFromFile (Fn:String; FilePos,Size :Longint):string;
Var
Data:String;
F:TFileStream;
I:Longint;
begin
Data:='';
if FileExists(FN) then begin
F:=TFileStream.Create(FN,fmOpenRead);
try
if FilePos+Size<=F.Size then
begin
f.seek(FilePos,soFromBeginning);
For I:=1 to Size do
begin
data:=data ;
f.Read(data[i],1);
end;
end
finally
f.free;
end;
ReadFromFile:=Data;
end
end;
