el Guille, la Web del Visual Basic, C#, .NET y más...

Visual Basic 6.0 gestiona muchísimo mejor las cadenas que .NET

 
Publicado el 07/Mar/2008
Actualizado el 07/Mar/2008
Autor: Guillermo 'guille' Som

Pues eso... y no lo digo por decirlo, ni porque "supuestamente" es así, es que lo he comprobado, como suele decirse, en mis propias carnes: Visual Basic 6.0 tiene un rendimiento excelente en la manipulación de cadenas, al menos frente a los lenguajes de .NET.



 

Introducción:

Pues eso... y no lo digo por decirlo, ni porque "supuestamente" es así, es que lo he comprobado, como suele decirse, en mis propias carnes: Visual Basic 6.0 tiene un rendimiento excelente en la manipulación de cadenas, al menos frente a los lenguajes de .NET.

 

Te cuento (aka la batallita del agüelo)

Yo tengo un fichero XML que en realidad es un RSS con todas las páginas de mi sitio (lo uso para facilitar la indexación de las páginas de mi sitio en Google). Este fichero, elGuilleTodo.xml, ocupa a día de hoy 804 KB y tiene 14.178 líneas.

Como resulta que tengo dos sitios con el mismo contenido: www.elguille.info y www.mundoprogramacion.com, cuando genero los ficheros RSS, siempre lo hago con las URL de elGuille.info, y después lo edito y cambio todas las referencias a elguille.info por mundoprogramcion.com.

Esto, con los ficheros de las novedades del sitio no es un problema, ya que a esta hora, ese fichero de novedades (elGuilleNovedades.xml) ocupa solo 33.84 KB y tiene 527 líneas.

Para hacer los cambios de los sitios, siempre edito el de elGuille.info y hago los cambios para que pueda usarlo desde mundoprogramcion.com, utilizo un editor que tengo, que me respeta los formatos correctamente y... bueno, como lo he "pario" yo, pues lo prefiero antes que el bloc de notas u otros editores que no son capaces de leer todos los caracteres.

La cosa es que ayer día 6, me decidí a actualizar el fichero con TODO el contenido de mi sitio, (la última actualización fue del 13 de Agosto de 2007), y claro al hacer el cambio en más de 14.000 líneas, esto le llevo un buen rato a mi editor, ya que utiliza las opciones de reemplazar del control RichTextBox.

Mientras estaba haciendo los cambios, me dije: ¿Y si pruebo a hacer los cambios con mi utilidad gsBuscarTexto?

Y lo probé... le dije qué tenía que buscar, qué tenía que poner, también le dije que solo buscara un fichero de texto (el que tenía las cadenas de elguille.info) y que solo buscara en el directorio en el que "yo sé" que está.

Y se pone a hacer los cambios... pero al cabo de unos minutos... ¡plaf! excepción (le desactivé la opción de ignorar los avisos de error), y resulta que la excepción era OutOfMemoryException. Es decir, no fue capaz de realizar todos los cambios.

Después, en realidad hace un rato, abro mi "otra" utilidad de buscar y reemplazar, pero la que hice en su día con Visual Basic 6.0: Buscar y Reemplazar v3, y esta si que consiguió hacer todos los cambios y guardarlos sin problemas.

Pero lo curioso no es eso... sino que esos ficheros XML están guardados con formato UTF-8, y ya sabes que ese tipo de fichero da problemas con los acentos y otras letras "extrañas", pues bien... ¡lo ha guardado correctamente!

 

Evidentemente no voy a dejar de usar Visual Studio 2008 y por extensión mi "querido" Visual Basic 9.0, pero... seguro que si tengo que hacer algo que manipule "mogollón" de cadenas, me plantearé antes si lo haré con VB6.

 

Este "suceso" lo único que hará será darme más trabajo, ya que tendré que revisar "a fondo" el código que uso en mi utilidad gsBuscarTexto para mejorar todo lo relacionado con la "reemplazación" (¿existe ese palabro?) del texto, ya que... sin mirarlo, seguro que "solo" usa las funciones de String (o eso espero), y tendré que "juguetear" un poco con las de StringBuilder, para ver si mejora la cosa... aunque lo dudo.

 

Ya te contaré...

 

Nos vemos.
Guillermo 



 


Haz tu donativo a este sitio con PayPal
 

Busca en este sitio con Google
 
Google

La fecha/hora en el servidor es: 16/04/2024 15:49:54

La fecha actual GMT (UTC) es: 

©Guillermo 'guille' Som, 1996-2024