В документации ocaml-containers
приведен отличный пример того, как читать файл и записывать содержимое в другой файл здесь . Тем не менее, я пытаюсь увидеть, что потребуется, чтобы изменить текст, прежде чем он будет передан из файла для чтения в файл для записи.
let read_filename = "example.ts"
let filename = "example2.ts"
let () =
let modify_file ~chunks =
let r = Str.regexp "text \\([A-Za-z]+\\)" in
Str.replace_first r "\\1" chunks in
CCIO.(
with_in read_filename
(fun ic ->
let chunks = read_chunks ic in
let new_chunks = modify_file chunks in
with_out ~flags:[Open_binary] ~mode:0o644 filename
(fun oc ->
write_gen oc new_chunks
)
)
)
Проблема с этим кодом в том, что компилятор жалуется:
File "component.ml", line 13, characters 39-45:
Error: This expression has type string gen = unit -> string option
but an expression was expected of type string
Я пытаюсь выяснить, что я делаю неправильно, но безрезультатно. Любая помощь будет более чем признательна. Кроме того, более чем приветствуются предложения относительно идеального корпоративного программного обеспечения для использования в OCaml для изменения текста в файлах. Спасибо.