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)