Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Функции, определяющие наличия входного потока


Автор: zetxi815eb 28.1.2007, 18:07
Обьясните плиз чем отличаются функции Eoln и Eof??? Как они работают? И в каких случаях надо указывать ' Eof(x)'?
И как меняется работа функции при наличии SeekEof??

Автор: Romikgy 28.1.2007, 18:13
Цитата(zetxi815eb @  28.1.2007,  17:07 Найти цитируемый пост)
Eof

Цитата

Tests whether the file position is at the end of a file.

Unit

System

Category

IO routines

Delphi syntax:

Typed or untyped files:

  function Eof(var F): Boolean;

Text files:

  function Eof [ (var F: Text) ]: Boolean;

Description

In Delphi code, Eof tests whether the current file position is the end-of-file. F is a file variable that has been opened for reading. If F is omitted, the standard file variable Input is assumed. 

Eof(F) returns true if the current file position is beyond the last character of the file or if the file is empty; otherwise, Eof(F) returns false.

Note:    Eof fails if the file F has been opened in write-only mode. For example, you can’t use Eof with files opened using the Append or Rewrite, which open a file in write-only mode.


Цитата(zetxi815eb @  28.1.2007,  17:07 Найти цитируемый пост)
Eof

Цитата

Tests whether the file pointer is at the end of a line.

Unit

System

Category

text file routines

Delphi syntax:

function Eoln [(var F: Text) ]: Boolean;

Description

In Delphi code, Eoln tests whether the current file position is the end-of-line of a text file. F, if specified, is a text file variable. If F is omitted, the standard file variable Input is assumed. 

Eoln(F) returns true if the current file position is at an end-of-line or if Eof(F) is true; otherwise, Eoln(F) returns false.

не ленимся лезть в хелп

Добавлено @ 18:13 
Цитата(zetxi815eb @  28.1.2007,  17:07 Найти цитируемый пост)
SeekEof

Цитата

Returns the end-of-file status of a file, ignoring whitespace.

Unit

System

Category

text file routines

Delphi syntax:

function SeekEof [ (var F: Text) ]: Boolean;

Description

In Delphi code, call SeekEof to determine whether there is only whitespace between the file pointer and the end of a file. SeekEof moves the file pointer past any whitespace, leaving it positioned at the end of a file or on the next non-whitespace character, whichever comes first. If it leaves the file pointer at the end of the file, SeekEof returns true. Otherwise, it returns false.

SeekEof can only be used on open text files.

Note:    {$I+} handles runtime errors using exceptions. When using {$I-}, use IOResult to check for I/O errors.

Автор: Zero 29.1.2007, 00:26
Romikgy, он вопрос задал на английском языке??? Или ты хочешь светонуть своим умом показывая ответ на английском... Вообщето есть руссифицированые справки уже давно.
Цитата(zetxi815eb @  28.1.2007,  18:07 Найти цитируемый пост)
Обьясните плиз чем отличаются функции Eoln и Eof???

Eoln возвращает значение истина, если указатель на текущую позицию файла, находиться на маркере конца строки.
Eof тоже самое, но только если указатель находиться на маркере конца файла.

Грубо говоря можно представить текстовый файл так:
Цитата

<Строка1> <eoln>
<Строка2> <eoln>
..........
<СтрокаN> <eoln>
<eof>
 т.е. в конце каждой строки есть признак eoln, а в конце всего файла признак eof  и проходя в цикле по файлу, ты ждёш момента пока указатель не передёт в позицию eof.
Цитата(zetxi815eb @  28.1.2007,  18:07 Найти цитируемый пост)
И в каких случаях надо указывать ' Eof(x)'?

В тех случаях, когда задача заключаеться пройтись по всем строкам файла и остановиться там где достигнут его конец.
А если говорить про eoln, то это может быть если нужно пройтись по каждому символу строки файла и остановиться в конце строки.
Цитата(zetxi815eb @  28.1.2007,  18:07 Найти цитируемый пост)
И как меняется работа функции при наличии SeekEof??
 Посути дело одно и тоже, но seekeof может работать только с текстовыми файлами, а eof с любыми.

Автор: Romikgy 29.1.2007, 09:32
Цитата(Zero @  28.1.2007,  23:26 Найти цитируемый пост)
он вопрос задал на английском языке??? Или ты хочешь светонуть своим умом показывая ответ на английском...

нет не силен я в английском, я просто хотел сказать , что такие вопросы , можно на форуме не спрашивать , а обратится к хелпу дельфи там все расписано!

Автор: Zero 29.1.2007, 14:09
Цитата(Romikgy @  29.1.2007,  09:32 Найти цитируемый пост)
а обратится к хелпу дельфи там все расписано!

Вообщето это подфорум по паскалю, и в паскале тоже как нистранно есть Хелп... И там в некоторых версиях написано всё на русском языке и более точно относиться именно к Турбо Паскалю, а не к объектному паскалю из делфи. smile 

Автор: Romikgy 29.1.2007, 19:28
Цитата(Zero @  29.1.2007,  13:09 Найти цитируемый пост)
Вообщето это подфорум по паскалю, 

здесь лоханулся, каюсь....

Цитата(Zero @  29.1.2007,  13:09 Найти цитируемый пост)
и в паскале тоже как нистранно есть Хелп.

и это хорошо, вот про это я и говорил , что в хелп надо смотреть!
Цитата(Zero @  29.1.2007,  13:09 Найти цитируемый пост)
И там в некоторых версиях написано всё на русском языке и более точно относиться именно к Турбо Паскалю

тем более....

Автор: zetxi815eb 31.1.2007, 23:02
Всем спасибо....разобрался!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)