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