Funciones para manejo de cadenas
Estas funciones complementan las funciones de manejo de cadenas (strings) de OpenOffice Basic.
A continuación mostramos algunas de estas funciones. No son todas las necesarias, ni pretenden ser perfectas. Como siempre ocurre cuando hablamos de programación, todo es mejorable.
Si consideras que tu función es más adecuada no dudes en mandarnos un correo con ella y la integraremos en este artículo.
Comentarios del código
En todas las funciones se ha agregado ByRef o ByVal definiendo el sistema de pasar el argumento según se ha considerado necesario para un adecuado funcionamiento.
Por defecto OOo Basic considera que los argumentos se pasan siempre por referencia; por lo tanto, y aunque es innecesario, en algunas se ha agregado ByRef para mejorar la lectura y comprensión de la función.
Las variables que se han utilizado en las funciones se han nombrado siguiendo el siguiente esquema:
- u para almacenar el ordinal del último elemento de la matriz devuelto por la función uBound.
- l para almacenar el ordinal del primer elemento de la matriz devuelto por la función lBound, dado que puede ser 0 (por defecto) o 1 según se haya establecido el parámetro Option Base.
- a para el array a().
Función PadR
La función PadR devuelve una cadena de longitud nLongitud rellenada por el caracter cCaracter por la derecha. Si no se especifica cCaracter se rellenará con espacios.
Function PadR( cTxt as string, nLongitud as integer, optional cCaracter as string) '-------------------------------------------------------------------------------------------- If IsMissing( cCaracter ) then cCaracter = " " PadR = Left( cTxt & String( nLongitud, cCaracter ), nLongitud ) End Function
Función PadL
La función PadL devuelve una cadena de longitud nLongitud rellenada por el caracter cCaracter por la izquierda. Si no se especifica cCaracter se rellenará con espacios.
Function PadL( cTxt as string, nLongitud as integer, optional cCaracter as string) '-------------------------------------------------------------------------------------------- If IsMissing( cCaracter ) then cCaracter = " " PadL = Right( String( nLongitud, cCaracter ) & cTxt, nLongitud ) End Function
Función ReplaceAll
La función ReplaceAll reemplaza en una cadena cCadena todas las ocurrencias cBusca por cReemplaza. Esta función se ha creado para solventar el conocido bug de la función Replace, que sólo reemplaza la primera ocurrencia.
Function ReplaceAll(cCadena As String, cBusca As String, optional cReemplaza As String) As String '-------------------------------------------------------------------------------------------- ' reemplaza en una cadena todas las ocurrencias de cBusca por cReemplaza If IsMissing( cReemplaza ) Then cReemplaza = "" ReplaceAll = Join( Split( cCadena, cBusca ), cReemplaza ) End Function
Función StringRepeat
La función StringRepeat devuelve la cadena cCadena repetida nVeces. Complementa a la función String, que repite un carácter o el primer carácter de una cadena, no la cadena completa.
Function StrRepeat( cCadena As String, nVeces As Long ) As String '-------------------------------------------------------------------------------------------- ' devuelve una cadena formada por cCadena repetida nVeces Dim x As String For n=1 To nVeces x = x & cCadena Next StrRepeat = x End Function