[RESUELTO]Corrección de FORMAT( dato, ">") en AOO Basic

Un lugar donde intercambiar y mejorar ideas y sugerencias para Apache OpenOffice
Reglas del Foro
Este foro no es para pedidos de ayuda, aquí se discuten ideas y sugerencias para mejorar el programa que serán posteriormente reportadas
Responder
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

[RESUELTO]Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por SLV-es »

He detectado lo que podría ser un error a la hora de trabajar el comando FORMAT de AOO Basic

Al utilizar el parámetro ">" que convierte el dato pasado como argumento en todo mayúsculas, no convierte las vocales acentuadas ni la ñ y ç.
AOO_Basic_01.png
AOO_Basic_01.png (10.94 KiB) Visto 12150 veces
Código de las funciones macro usadas:

Código: Seleccionar todo

Function myUCase(x)
	dim y as string
	y = format( x , "nn dd/mmm/yy")
	y = uCase( y )
	myUCase = y
end function

Function myBadUCase(x)
	dim y as string
	y = format( x , "nn dd/mmm/yy")
	y = format( y , ">")
	myBadUCase = y
end function
Adjuntos
Bad_Basic_Format.ods
Hoja Calc con macro y pruebas
(13.51 KiB) Descargado 527 veces
Última edición por RGB-es el Dom Jun 10, 2012 7:50 pm, editado 2 veces en total.
Razón: Marcar como resuelto
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por RGB-es »

Pues sí, es un claro error. He intentado una búsqueda en bugzilla pero extrañamente no puedo encontrar algo relacionado... ¿Sabes si la función se llama «format» también en inglés?

El reporte tendría que ser más o menos en estos términos

Título: La instrucción format falla con caracteres acentuados al pasar todo a mayúsculas

Descripción: Al utilizar la instrucción format con el parámetro > en modo tal de cambiar el texto de una celda todo a manúsculas, el cambio no se produce en caracteres acentuados. Por ejemplo «sábado» pasa a «SáBADO» en lugar de «SÁBADO». En el archivo adjunto puede encontrarse una macro que utiliza esta instrucción para modificar los datos, mostrando la falla con caracteres del tipo á, é, ñ...

<se adjunta tu archivo>

¿Algo para agregar/modificar?

Saludos
Ricardo
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por SLV-es »

La instrucción FORMAT es en inglés, pues es Basic.

Nada más que agregar, me parece perfecto.

Gracias !!!!
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por RGB-es »

No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
mriosv
Mensajes: 2334
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por mriosv »

¿Solo una duda, podrá tener algo que ver con el juego de caracteres, que use por defecto Starbasic?
¿Podrá establecerse el juego de caracteres a utilizar?
Por ejemplo en los formatos de conversión de números/fechas a texto no son iguales en todos los idiomas, y desconozco si Starbasic usa el que esta seleccionado en las opciones, el del estilo de la celda o siempre utiliza el inglés.
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por RGB-es »

mriosv escribió:¿Solo una duda, podrá tener algo que ver con el juego de caracteres, que use por defecto Starbasic?
Todo AOO/LibO usa unicode, por lo que estos problemas no deberían existir. Por esto me inclino más a pensar en starbasic no utilizando todos los rangos unicode, solo el «Latin1» (el antiguo ascii) y dejando los caracteres que no comprende afuera... si es así resultaría una limitación demasiado importante.
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por RGB-es »

Alguien ha comentado en el reporte diciendo que si se agrega uCase a la función «bad», todo funciona

Código: Seleccionar todo

Function myBadUCase(x)
	dim y as string
	y = format( x , "nn dd/mmm/yy")
	y = format( y , ">")
	y = uCase ( y )
	myBadUCase = y
end function


No tengo idea de si este uCase es realmente necesario o no debería serlo y el hecho de tener que agregarlo sea un error en sí mismo...
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por SLV-es »

La orden Format ( x ; ">") y la orden UCase( x ) son equivalentes.
La orden Format ( x ; "<") y la orden LCase( x ) son equivalentes.

Normalmente la orden Format se utiliza agregando más parámetros al argumento formato (@, &, !), con el objeto de formatear cadenas de texto y además, con "<" o ">" convertirlas a minúsculas o mayúsculas.

Nota: @ significa un carácter o en su defecto un espacio en blanco ; & significa un carácter o en su defecto nada ; ! significa alinear a la derecha

Código: Seleccionar todo

x="Pepe " ' con un espacio extra al final
y = format ( x; "@@@@@@!" )
 
' y debería contener " Pepe "

y = format ( x ; "&&&&&&" )
' y debería contener "Pepe"

y = format( x ; ">@@@@@@!" )
' y debería contener " PEPE "
Por supuesto que si aplicas lCase o uCase posteriormente obtienes el mismo resultado, pero eso no quita que Format con ">" o "<" debería de funcionar correctamente, y así poder con una sóla orden dar formato y convertir a mayúsculas.

Saludos
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por RGB-es »

Perfecto. Agregué un comentario indicando un par de cosas:

-Que uCase debería ser equivalente a format con >, por lo que la «solución» propuesta no es tal ya que realiza dos veces la misma acción con solo la segunda funcionando.

-Que el reporte no es sobre la dificultad de pasar caracteres acentuados a mayúsculas, sino sobre la falla del comando format al realizar esa tarea.

Saludos
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por RGB-es »

Buenas noticias: Ariel Constenla-Haile ha tomado el reporte... ¡y lo ha resuelto!

El parche ya fue enviado a la rama principal de desarrollo del programa. No sé si la corrección logrará entrar en 3.4.1 o pasará para la próxima versión «mayor» (no es algo crítico), pero ya está listo.
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: [RESUELTO]Corrección de FORMAT( dato, ">") en AOO Basic

Mensaje por SLV-es »

Bien por los dos !!!!

Gracias
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Responder