Renombrador
Descripción del contenido de la página
Utilidad para renombrar ficheros en la Psion 5mx.
Escribí esta pequeña utilidad para mi Psion 5mx en OPL. Renombra, con un procedimiento que hay que escribir para cada ocasión, los ficheros cuyo nombre se incluye en una lista en un fichero de texto. Escribí también otro renombrador más desarrollado y con un planteamiento diferente.
Código fuente
rem renombrador
rem Un renombrador de ficheros para la Psion 5mx.
rem Dosier-renomigilo por Psion 5mx.
rem A file renamer for the Psion 5mx.
rem Renombra archivos de Psion 5mx cuyos nombres están en un archivo de texto.
rem Ghi alinomigas dosierojn en teksta dosiero listitajn.
rem It renames files whose names are included in a text file.
rem Carece de interfaz de usuario. Hay que adaptar el código fuente a cada caso.
rem Senuzinterfaca. La fontkodon endas chiukaze adapti.
rem No user interface. The source code has to be configured for every case.
rem Copyright (C) 2004-2007 Marcos Cruz (http://programandala.net)
rem Licencia/Permesilo/License:
rem http://programandala.net/license
rem --------------------------------------------
rem 2007-01-20
rem Mejorado. Ampliado con nuevo proc para renombrar.
rem 2006-07-12
rem Mejorado. Ampliado con nuevo proc para renombrar.
rem 2005-10-21
rem Segunda versión, mejorada.
rem Dua versio, plibonigita.
rem Second version, improved.
rem 2004-09-10
rem Primera versión.
rem Unua versio.
rem First version.
rem --------------------------------------------
proc main:
local file_list$(255)
local old_file_name$(255)
local new_file_name$(255)
local ret%,handle%,mode%
local address&
local k%
setpath "d:\MY_PATH\":rem CONFIGURE THIS
address&=addr(old_file_name$)
rem CONFIGURE THIS:
rem print "Filename with the file list?",
rem input file_list$
file_list$ = "c:\MY_FILE_LIST.txt":rem OR CONFIGURE THIS
cls
mode%=$0400 OR $0020 rem open=$0000,text=$0020,share=$0400
ret%=ioopen(handle%,file_list$,mode%)
if ret%<0
error:(ret%)
return
endif
while 1
k% = key
if k% rem if keypress
if k%=27 rem Esc pressed
return rem otherwise wait for a key
elseif get=27
return rem Esc pressed
endif
endif
ret%=ioread(handle%,address&+1,255)
if ret%<0
if ret%<>-36 rem not end of file
error:(ret%)
endif
break
else
pokeb address&,ret% rem leading byte count
new_file_name$=rename_02$:(old_file_name$)
if exist(old_file_name$) and (new_file_name$<>old_file_name$)
print old_file_name$;" > ";
if not exist(new_file_name$)
rename old_file_name$,new_file_name$
print new_file_name$
else
print "Error: YA EXISTE. Pulsa una tecla para seguir."
pause 0
endif
endif
endif
endwh
ret% = ioclose(handle%)
if ret%
error:(ret%)
endif
pause -100
key
endp
proc rename_01$:(file_name$)
rem Renombra a minúsculas
rem y cambia los espacios por guiones bajos.
local renamed$(255)
local addr&
local i%
renamed$ = lower$(file_name$)
addr& = addr(renamed$)
i% = len(renamed$)
while i%
if peekb(addr&+i%) = 32 rem space
pokeb addr&+i&,%_
endif
i% = i%-1
endwh
return renamed$
endp
proc rename_02$:(file_name$)
rem entrada:
rem x_p1_p2_pn[_muestra].jpg
rem salida:
rem x[_muestra].jpg
rem 2006-07-12
local left%,right%
left% = loc(file_name$,"_")-1
right%=4+8*abs(loc(file_name$,"_muestra.jpg")>0)
return left$(file_name$,left%)+right$(file_name$,right%)
endp
proc rename_03$:(file_name$)
rem Cambia los guiones bajos por espacios.
rem 2007-01-20
local renamed$(255)
local addr&
local i%
renamed$ = file_name$
addr& = addr(renamed$)
i% = len(renamed$)
while i%
if peekb(addr&+i%) = %_
pokeb addr&+i&,32 rem space
endif
i% = i%-1
endwh
return renamed$
endp
proc error:(val%)
print "Error",val%,err$(val%)
get
endp