Как да добавя към файл с помощта на схема?

Използвам TinyScheme (всъщност Script-Fu в GIMP) и не мога да намеря добър начин да отворя файл и да добавя ред текст към него.

Опитвам се да запиша някаква информация във файла за отстраняване на грешки и изглежда, че включването на препис не се прилага...

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

Трябва да има по-добър начин!


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


Отговори (2)


Ще бъде нещо като

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

Искате да потърсите функцията file-options.

Актуализация

Ето версията на guile:

(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