Problema Con Texto En Control TextArea


Objetivo: 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!

Perfil MP  
Objetivo: 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.

Objetivo: 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

Perfil MP  
Objetivo: 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?

Perfil MP  
Objetivo: 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

última edición por Shell el Jueves, 20 Diciembre 2012, 19:14; editado 1 vez
Objetivo: 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

Perfil MP  
Objetivo: 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

última edición por Shell el Jueves, 20 Diciembre 2012, 19:44; editado 1 vez
Objetivo: 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

Perfil MP  
Objetivo: 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.

Perfil MP  
Objetivo: 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!

Perfil MP  

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4749s (PHP: -67% SQL: 167%)
Consultas SQL: 47 - Debug off - GZIP Activado