R5RS Схема ввода-вывода: Как записать/добавить текст в выходной файл?

Каков простой способ вывода текста в файл в версии Scheme, совместимой с R5RS? Я использую MEEP MIT (который использует Scheme для написания сценариев) и хочу вывести текст в файл. Я нашел следующие другие ответы на Stackoverflow:

Операции файлового ввода-вывода — Схема

Как добавить файл с помощью схемы

Добавить строку в существующий текстовый файл [sic] в IronScheme

Но они были не совсем тем, что я искал.


person ansebbian0    schedule 04.02.2016    source источник


Ответы (1)


Ответы Чарли Мартина, Бена Руджерса и Виджая Мэтью были очень полезны, но я хотел бы дать ответ, который будет простым и понятным для новых интриганов, таких как я :)

; This call opens a file in the append mode (it will create a file if it doesn't exist)
(define my-file (open-file "my-file-name.txt" "a"))

; You save text to a variable
(define my-text-var1 "This is some text I want in a file")
(define my-text-var2 "This is some more text I want in a file")

; You can output these variables or just text to the file above specified
; You use string-append to tie that text and a new line character together.
(display (string-append my-text-var1 "\r\n" my-file))
(display (string-append my-text-var2 "\r\n" my-file))
(display (string-append "This is some other text I want in the file" "\r\n" my-file))

; Be sure to close the file, or your file will not be updated.
(close-output-port my-file)

И, если у вас остались вопросы обо всем, что связано с "\r\n", см. следующий ответ:

В чем разница между \r и \n?

Ваше здоровье!

person ansebbian0    schedule 04.02.2016
comment
вы тестировали это? Я полагаю, что вам не хватает скобки в ваших операторах отображения. И пока мы здесь. Почему бы не определить текст для включения новой строки? - person Rptx; 11.02.2016
comment
Спасибо за наводку на скобки. У меня был этот код на другой машине, когда я его писал, поэтому я их пропустил. Что касается \n, конечно, вы можете вставить текстовую строку, но если вы пытаетесь добавить вывод функции, это делает его более понятным. - person ansebbian0; 15.02.2016