Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Problema Con Texto En Control TextArea
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problema Con Texto En Control TextArea 
 
Hola!

Estoy usando dos controles textArea para "procesar" un texto. La idea es la siguiente: copio desde algun sitio un texto con formato, lo pego en el primer textArea, y luego lo "proceso" (eliminado caracteres de control, etc) y muestro en el segundo textArea.

El problema aparece cuando el texto copiado posee caracteres como la "Á" ("a" mayúscula acentuada) que hace que el proceso falle (quedan caracteres sin procesar,etc).

Mi rutina es por ahora muy sencilla, ya que estaba comenzando el proyecto y me encontré rápidamente con este problema.

Básicamente, recorro el primero textArea tomando uno a uno sus caracteres ("cortando" textArea.text con MID$ ) , y si se trata de alguno de los que quiero eliminar, no los copio al segundo textArea. Caso contrario, lo agrego al segundo textArea (que inicialmente está vacio) con textArea.text = textArea.text & caracter



Supongo que el problema puede venir por el juego de caracteres utilizado o algo asi, pero no logro dar en la tecla.  

¿Alguien tiene alguna idea de por que pasa esto?

Saludos!
 



 
ArielPalazzesi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
Hola ArielPalazzesi.

En vez de Mid, usa String.Mid y comenta si tienes algún problema.

http://gambasdoc.org/help/comp/gb/string?view


Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
Gracias por responder tán rápido!
Me hace lo mismo.

El tema pasa por los acentos: acabo de probar con el mismo texto, uno con acentos y otro sin ellos (reemplazando las vocales acentuadas por las mismas sin acentuar), y el que no tiene acentos se procesa bien.

Sigo investigando
 



 
ArielPalazzesi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
Definitivamente tengo un problema con el juego de caracteres del ordenador, con el cut and paste o algo por ese lado.

Tengo Ubuntu 12.10. Y cuando copio/pego texto al gedit (o intento renombrar archivos, por ejemplo), pegando desde el navegador, todos los acentos se van al cuerno.

Aparecen caracteres raros, cosas asi.

Antes tenia el sistema con UTF-8, pero hace un mes o asi "murio" el HD e instale el SO desde cero. Seguro que tengo otro juego de caracteres en el sistema.....

¿podrá ser eso? ¿Tendrá arreglo?  
 



 
ArielPalazzesi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
Hola Ariel.

Para saber si estas usando UTF-8 puedes escribir:

env | grep utf8
 


Puedes probar también con:


env | grep LANG
 


Deberías ver el soporte de idiomas si lo tienes completo para español.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 20 Diciembre 2012, 19:14; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
Hola!

Esto es lo que me pone:

$ env | grep LANG
LANG=es_AR.UTF-8
GDM_LANG=es_AR
LANGUAGE=es_AR:zh_CN:en

O sea...debería estar bien.

Que pena, como me atrasa esta tonteria!!!

Muchas gracias por la ayuda, algo menos para tener en cuenta
 



 
ArielPalazzesi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
A ver, encontré esto:

http://blog.unreal4u.com/2010/09/pr...ldes-o-acentos/

Con eso podrás convertir un documento de un juego de caracteres a otro.
Pero te hace falta cambiar eso en tu sistema.

Ve la lista de idiomas en tu sistema y el orden de preferencia.Sube el tuyo al primero.
Voy a una Ubuntu a ver que veo.Estoy usando aquí Debian y varían algunas cosas.

Es posible en gambas también averiguar si usas UTF-8

Public Sub Form_Open()

Print "Estoy usando "; System.Charset; " en el terminal"
Print "Estoy usando "; Desktop.Charset; " en el escritorio"

End
 


Mas información en:

http://gambasdoc.org/help/lang/dconv?es&v3&help

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 20 Diciembre 2012, 19:44; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
Buen link!

Probe cambiando la codificación en el navegador (Chrome) a un par diferentes de UTF-8 (los mas habituales, usados por Win, etc) y todo se va MAL a la mierd..

Veo las paginas webs muy mal. Asi y todo, probe de copiar textos codificados asi y procesarlos, y mi programa solo me "transcribe" lo que hay entre el último caracter acentuado y el final del texto.

Solo por las dudas pongo el código que estoy usando, que es MUY simple por que me encontré con esto y no llegue a codificar practicamente nada.

La idea es poder tomar textos de un Wiki (www.ucontrol.com.ar) , ir a la página de edicion, copiar el código, y que mi futuro "conversor" le cambie el formato al que mi foro (SMF) soporta, para evitarme el trabajo manual. La idea es cambiar el formato de los links, negrita, cursiva, etc de uno a otro sistema.


Public Sub btnConvertir_Click()
Dim iLargoText, i, j, puntero As Integer
  Dim char1, char2 As String
  
  'Calculo el largo del texto a convertir
  Conv$(txtWiki.text, "WINDOWS-1253", "UTF-8")
  iLargoText = Len(txtWiki.text)
  
  'Inicializo (vacio) la cadena de destino
  txtSMF.text = ""
  
  'Recorro la cadena buscando "[[" para quitarlos
  puntero = 1 'Caracter a revisar
  j = 0 'Flag búsqueda "|"
  i = 0 'Flag búsqueda "]]"
  
  Do
    char1 = Mid(txtWiki.text, puntero, 1)
    char2 = Mid(txtWiki.text, puntero + 1, 1)
    
    If char1 = "[" And char2 = "[" Then
      'Busco el "]]" o el "|"
      i = 1 ' Aun  no encontré el "|"
      j = 1 'Aun no encontre el "]]"
      puntero = puntero + 2 ' Adelanto dos caracteres, para descartar el "[[" que acabo de encontrar
    Endif
  
    If char1 = "|" Then
      i = 2 'encontré el "|", debo ignorar los caracteres siguentes hasta el "]]"
      puntero = puntero + 1
    Endif
  
    If char1 = "]" And char2 = "]" Then
      'Procesamiento terminado
      i = 0 ' Ya encontré el "|" (o no existia)
      j = 0 'Ya encontre el "]]"
      puntero = puntero + 2 ' Adelanto dos caracteres, para descartar el "]]" que acabo de encontrar
    Endif
  
    If i <> 2 Then  
      'Nada raro, copio el caracter actual.
      txtSMF.text = txtSMF.text & Mid(txtWiki.text, puntero, 1)
    Endif
    puntero = puntero + 1
  Loop Until puntero >= iLargoText
  
End


PD: Aclaro, por las dudas, que tanto el wiki como el foro en cuestion son de mi propiedad
 



 
ArielPalazzesi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
El problema que estas teniendo no es con la codificacion, sino con los métodos que usas. Mid(...), Len(...) trabajan con ASCII! Para que puedas procesar los caracteres UTF-8 debes usar String.Mid(...), String.Len(...)

Public Sub btnConvertir_Click()
Dim iLargoText, i, j, puntero As Integer
Dim char1, char2 As String

'Calculo el largo del texto a convertir
Conv$(txtWiki.text, "WINDOWS-1253", "UTF-8")
iLargoText = String.Len(txtWiki.text)

'Inicializo (vacio) la cadena de destino
txtSMF.text = ""

'Recorro la cadena buscando "[[" para quitarlos
puntero = 1 'Caracter a revisar
j = 0 'Flag búsqueda "|"
i = 0 'Flag búsqueda "]]"

Do
char1 = String.LenMid(txtWiki.text, puntero, 1)
char2 = String.LenMid(txtWiki.text, puntero + 1, 1)

If char1 = "[" And char2 = "[" Then
'Busco el "]]" o el "|"
i = 1 ' Aun no encontré el "|"
j = 1 'Aun no encontre el "]]"
puntero = puntero + 2 ' Adelanto dos caracteres, para descartar el "[[" que acabo de encontrar
Endif

If char1 = "|" Then
i = 2 'encontré el "|", debo ignorar los caracteres siguentes hasta el "]]"
puntero = puntero + 1
Endif

If char1 = "]" And char2 = "]" Then
'Procesamiento terminado
i = 0 ' Ya encontré el "|" (o no existia)
j = 0 'Ya encontre el "]]"
puntero = puntero + 2 ' Adelanto dos caracteres, para descartar el "]]" que acabo de encontrar
Endif

If i <> 2 Then
'Nada raro, copio el caracter actual.
txtSMF.text = txtSMF.text & String.LenMid(txtWiki.text, puntero, 1)
Endif
puntero = puntero + 1
Loop Until puntero >= iLargoText

End


No estoy seguro de como tratara el código el offset de los caracteres, pero es cuestion de probar. Si aún tienes problemas, te recomiendo que postees un proyecto de prueba y subas un archivo con el texto que te esta dando problemas.
 



 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con Texto En Control TextArea 
 
Perfecto!

Ahora si anda!

Alguien ya me habia mencionado utilizar string. xxx pero no lo hacia al calcular la longitud de las cadenas.

Funciona perfectamente.

Muchas gracias!!!!!!

Sigo avanzando, y si me encuentro con algun otro escollo vuelvo a preguntar

Gracias!
 



 
ArielPalazzesi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron