Позиция файла в Racket

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

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


person Community    schedule 03.02.2011    source источник


Ответы (2)


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

person Eli Barzilay    schedule 03.02.2011

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

person YasirA    schedule 03.02.2011
comment
@jenny Если ответ помог вам, и вы его принимаете, это еще лучший способ сказать спасибо Ясиру. - person Greg Hendershott; 05.02.2011