2011-02-03 2 views
0

Мне интересно, есть ли что-то в Racket, чтобы манипулировать позицией файла во входном порту. Мое дело в том, что мне нужно сделать что-то вроде указателя файла, вернется в одну позицию, если я прочитаю материал, который я не должен был читать.Позиция файла в Racket

например. «Я смущен». в файле test.txt. , тогда указатель файла уже запутался. (Я думаю) Так что я могу сделать то, что в следующий раз, когда я читаю строку, я получаю «я», а не «.» ??

ответ

1

Для завершения работы существует функция file-position, которая может извлекать текущую позицию или изменять ее. Но вы, как правило, избегаете этого, поскольку он заставляет код работать только в портах, где вы можете реально изменить позицию - и это не всегда так. Как отметил Ясир, для всех функций чтения обычно существует «заглядывающая» версия, которая что-то читает, не перемещая позицию, и это лучшее решение.

2

Рассмотрите peek-string например. Он идентичен read-string, за исключением того, что возвращенные символы сохраняются в порту для будущих чтений.

+0

ahh ...... спасибо за указание: помогли мне сэкономить много времени .... –

+0

@jenny: Добро пожаловать! :-) –

+0

@jenny Если ответ вам помог, и вы «согласитесь», это еще лучший способ сказать спасибо Ясиру. –

Смежные вопросы