Как добавить в файл с помощью Scheme?

Я использую TinyScheme (на самом деле Script-Fu в GIMP) и не могу найти хороший способ открыть файл и добавить к нему строку текста.

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

Прямо сейчас я копаюсь, читая весь файл (по одному символу за раз!), объединяя его в строку, объединяя свой текст в конец этого, а затем снова записывая все это в файл.

Должен быть лучший способ!


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


Ответы (2)


Это будет что-то вроде

(open-file "myfile" (file-options append))

Вы хотите найти функцию file-options.

Обновлять

Вот хитрый вариант:

(open-file "myfilename.dat" "a")
person Charlie Martin    schedule 13.02.2009
comment
хм... это, по крайней мере, приводит меня к нужной части документов (: GIMP, увы, не распознает параметры файла... - person ; 13.02.2009
comment
Попробуйте флаг открытого файла. К сожалению, очень сложно аксиоматизировать этот материал, поэтому Scheme его вообще не определяет. - person Charlie Martin; 13.02.2009

У меня была точно такая же проблема в GIMP, и я решил использовать open-input-output-file. Мое решение примерно такое:

(let* ((out (open-input-output-file "file.txt") ))
  (display "hello world" out)
  (newline out)                    
  (close-output-port out))

Просмотрел исходный код TinyScheme и проверил, что эта функция действительно вызывает fopen с "a+". Файл открыт для чтения и записи. Для наших целей мы хотим только писать, так что просто игнорируйте чтение.

Я пишу Script-Fu для записи значений gimp-selection-bounds в файл.

person LuisR    schedule 04.08.2017