funciones basic

Discute sobre la aplicación de hojas de cálculo
Responder
ppinedo
Mensajes: 55
Registrado: Jue Feb 23, 2012 1:16 pm

funciones basic

Mensaje por ppinedo »

Hola,estoy programando con Lbreoffice Basic pero no se cuales son las funciones equivalentes a sustituir y reemplazar(en código) de la hoja de calculo ¿Alguien lo sabe?

A1: LibreOffice
A3: =sustituir(A1;"e";3) >> Libr3Offic3

Gracias, saludos:D
XP + AOO 4.0.0 / W10Home + LibOff 5.4
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: funciones basic

Mensaje por PepeOooSevilla »

Hola.
En el apartado "7. String Routines" del libro "OpenOffice.org Macros Explained.odt V4" de Andrew Pitonyak (http://www.pitonyak.org/oo.php) figura una relación de las funciones para el tratamiento de cadenas de caracteres en OOBasic. Este libro junto con Aprendiendo OOo Basic de nuestro compañero mauricio son primordiales para conocer el lenguaje Basic de OpenOffice/LibreOffice.

Para el caso que nos ocupa la función que necesitas es Replace(strng, find, rpl, start, Count, mode) (como mi inglés no es bueno me ayudo del traductor de Google :lol: ):
Andrew Pitonyak escribió:But wait, there is an undocumented statement Replace(strng, find, rpl, start, Count, mode), which finds all occurrences of find and replaces them with rpl. The last three arguments are optional.
The start value indicates what part of the string to return, not where to start replace. A value of one for the start value returns all of the characters. A start value of three ignores the first two characters in the return string.
The count indicates the maximum number of times to replace the found text. A value of -1 replaces all values.
A mode value of 1, the default, indicates a case-insensitive compare is used to find matching text. A mode value of 0 causes a case-sensitive compare.
Traductor de Google escribió:Pero espere, hay una declaración no documentada Reemplazar (strng, find, rpl, start, Count, mode), que encuentra todas las apariciones de find y las reemplaza por rpl. Los últimos tres argumentos son opcionales.
El valor de inicio indica qué parte de la cadena devolver, no dónde comenzar a reemplazar. Un valor de uno para el valor de inicio devuelve todos los caracteres. Un valor de inicio de tres ignora los dos primeros caracteres de la cadena de retorno.
El conteo indica el número máximo de veces para reemplazar el texto encontrado. Un valor de -1 reemplaza todos los valores.
Un valor de modo de 1, el valor predeterminado, indica que se utiliza una comparación entre mayúsculas y minúsculas para encontrar el texto coincidente. Un valor de modo de 0 causa una comparación entre mayúsculas y minúsculas.
Si trabajas con una versión antigua de OpenOffice/LibreOffice puede que el intérprete Basic no reconozca la función Replace(), en tal caso puedes utilizar el código siguiente de la página Strings (OpenOffice.org BASIC Runtime Library)

Código: Seleccionar todo

Function Replace(Source As String, Search As String, NewPart As String) As String
	Dim Result As String
	Dim StartPos As Long
	Dim CurrentPos As Long
	
	Result = ""
	StartPos = 1
	CurrentPos = 1
	
	If Search = "" Then
	Result = Source
	Else 
	Do While CurrentPos <> 0
		CurrentPos = InStr(StartPos, Source, Search)
		If CurrentPos <> 0 Then
		Result = Result + Mid(Source, StartPos, _
		CurrentPos - StartPos)
		Result = Result + NewPart
		StartPos = CurrentPos + Len(Search)
		Else
		Result = Result + Mid(Source, StartPos, Len(Source))
		End If                ' Position <> 0
	Loop 
	End If 
	
	Replace = Result
End Function
Saludos cordiales.
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Responder