nocrlf

Description of the page content

ANS Forth program to remove all ends of line from a HTML file and put them after every tag.

Tags:

I wrote this little tool in ANS Forth to remove all ends of line from a HTML file and put them after every tag, in order to edit it manually.

The words and comments are in Spanish but the code is trivial, so it's easy to understand. The interface words are the following:

Source code

\ *********************
cr .( nocrlf )
\ *********************


\ Copyright (C) 2005 Marcos Cruz (http://programandala.net)
\ Licencia/Permesilo/License: http://programanadala.net/license

\ Programa escrito en ANS Forth.
\ Programo verkita en ANS-Fortho.
\ Program written in ANS Forth.

\ Programa para quitar los finales de línea arbitrarios de un archivo HTML
\ y colocarlos detrás de cada marca, para poder editarlo.

\ 2005 04 09 Primera versión.

\ Comandos:
\ s" fichero-origen" DE
\ s" fichero-destino" HACIA
\ TRADUCE
\ CIERRA

decimal

10 constant lf-char
13 constant cr-char

variable archivo_original
variable archivo_nuevo
variable lugar

: de  ( a u -- )
  r/o open-file
  abort" Error al abrir el archivo original"
  archivo_original !
;

: hacia  ( a u -- )
  w/o create-file
  abort" Error al abrir el archivo nuevo"
  archivo_nuevo !
;

: cierra
  archivo_original @ close-file
  abort" Error al cerrar el archivo original"
  archivo_nuevo @ close-file
  abort" Error al cerrar el archivo nuevo"
;

: signo  ( -- c )
  lugar c@
  ;

: destino  ( -- a 1 )
  lugar 1
  ;

: traduce  ( -- )
  page
  begin
    destino archivo_original @ read-file
    abort" Error leyendo el archivo original"
  while
    signo dup
    lf-char = swap cr-char = or
    if
      bl lugar c!
    then
    signo emit
    destino archivo_nuevo @ write-file
    signo [char] > =
    if
      cr-char lugar c!
      destino archivo_nuevo @ write-file
      lf-char lugar c!
      destino archivo_nuevo @ write-file
      cr
    then
  repeat
  ;

.(  nocrlf ok!)

Downloads

nocrlf.fs (1.54 KiB)