Escribí esta pequeña utilidad en ANS Forth para quitar todos los finales de línea de un fichero HTML y colocarlos tras cada etiqueta HTML, para facilitar la edición manual del contenido.

Listado


\ *********************
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!)

Descarga

nocrlf.fs (1.55 KiB)

URL: http://programandala.net/es.programa.nocrlf

Página publicada en 2010-03-09 00:47 CEST
Última modificación realizada en 2010-03-09T02:46:50+01:00