#lang scheme
;;; Cada fichero está en algún sitio.
;;; Path = trayectoria que conduce al sitio
(define dir-path "/Volumes/abenitez/Documents/ZETA/")
(define dir-trabajo
  (build-path dir-path))
;;; directorio de trabajo
(current-directory dir-trabajo)
(directory-list)
;;; Cada fichero tiene un nombre y una extensión
;;; prueba1 = nombre; txt = extensión
(define nombre-fichero "Prueba-escritura.txt")
(file-size nombre-fichero)
(current-directory)

(define out-port-1
  (open-output-file
   nombre-fichero
   ;(string-append dir-path nombre-fichero)
    #:mode 'text
    #:exists 'update
    ;#:exists 'append
    ) )

(define escritura-file
  (lambda (texto nombre-file flag)
    (let ((out-port #f))
      (cond
        ((eq? flag 'replace) 
         (set! out-port (open-output-file nombre-file 
                                          #:mode 'text 
                                          #:exists 'replace)) )
      ((eq? flag 'truncate)
         (set! out-port (open-output-file nombre-file 
                                          #:mode 'text 
                                          #:exists 'truncate)) )
      ((eq? flag 'update)
         (set! out-port (open-output-file nombre-file 
                                          #:mode 'text 
                                          #:exists 'update)) )
      ((eq? flag 'append)
         (set! out-port (open-output-file nombre-file 
                                          #:mode 'text 
                                          #:exists 'append)) )
      (else
         (set! out-port (open-output-file nombre-file 
                                          #:mode 'text 
                                          #:exists 'error)) )
      )
      ;(fprintf out-port "~a" texto)
      ;(write texto out-port)
      (display texto out-port)
      ;(print texto out-port)
      (close-output-port out-port)
      )
    ))

(define texto "Una de las demandas principales que nos hacían los usuarios que registran sus obras con nosotros era saber dónde se estaban difundiendo, explica Mario Pena, responsable del servicio online gratuito de registro de obras Safe Creative. Esta empresa acaba de poner en marcha un acuerdo con Attributor, una compañía creada hace cinco años por un alto cargo de Yahoo especialista en derecho que emplea esas huellas dactilares para identificar quién, cómo y dónde ha copiado un texto. 

Pena defiende que lo importante para un creador es tener la información suficiente para tomar decisiones con posterioridad. Con ello se refiere a que esta tecnología de seguimiento no tiene sólo un afán de demandar a quien copie, en todo o en parte, la obra registrada. Nosotros somos neutrales, cada autor emplea la información como quiere. A aquellos que utilizan licencias Creative Commons (menos restrictivas que el copyright) lo que les interesa sobre todo es que quien ha reproducido el archivo haya reflejado su autoría o comprobar si un texto está teniendo relevancia en otras páginas web, añade Pena.")
(string-length texto)
(escritura-file texto nombre-fichero 'truncate)

(define lectura-file-read-char
  (lambda (in-port)
    (let go (
             (item (read-char in-port))
             )
      (if (eof-object? item)
          (close-input-port in-port)
          (begin
            (printf "~a" item);(display item);
            (go (read-char in-port))) )
      )
    ))
(define in-port-1 
  (open-input-file
   nombre-fichero
    #:mode 'text ))

(lectura-file-read-char in-port-1)