Uso de cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando, consideramos que acepta su uso. Para obtener más información o bien conocer cómo cambiar la configuración lea nuestra Política de cookies

Revisión a fecha de 19:28 2 sep 2015; Salva (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

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
Modificada el 2 sep 2015 19:28.   Visitas: 10 446