Hola, estoy pensando en desarrollar un pequeo interprete de texto que me permita extraer de un estira cierta informacin. Por ejemplo, de un texto de este tipo:
texto libre #etiqueta1#etiqueta2. El interprete debe guardar en una variable el valor de etiqueta1 y etiqueta2. El resto texto libre, en otra variable. Los datos se pillara de un TextArea por ejemplo.
Vamos a tratar algunos datos reales …
Los muchachos peronistas #Planeta#HISTORIA HISTORIA ARGENTINA POLITICA PERONISMO JUVENTUD PERONISTA INVESTIGACION
De salariazo a corralito, de carapintada a blog: nuevas palabras en 25 aos de democracia #Biblioteca Nacional #NEOLOGISMOS
La moda: edicin facsimilar #Biblioteca Nacional #MODA USOS Y COSTUMBRES HISTORIA ARGENTINA SIGLO XVIII FACSIMILES
La destruccin o el amor #Losada#POESIA
Poemas amorosos: antologa #Losada#POESIA
Chiquitos de Amrica Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA
Chiquitos de Amrica Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA
Chiquitos de Amrica Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA
Chiquitos de Amrica Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA
//
Mientras tanto dividimos las lneas de texto de acuerdo con el tipo de carcter / caracteres usados ??para el final de la lnea.
Mediante el anlisis de los distintos tipos de sistema operativo comn que 0A (CR) en otros casos, en las ventanas, 0A0D (CR + LF)
dim entita() as text
entita() = input.Split(&u0a)
entita() es una matriz que contiene las filas
//
Ahora, tenemos que entrar en una clase de lnea de datos de lectura
A continuacin, defina un objeto o una clase con los tres campos de texto
dim datos() as new classedatos
for row as integer = 0 to entita.ubound
dim nuevodatos as new classedatos
nuevodatos.datos1 = trim(nthfield(entita(row),"#",1))
nuevodatos.datos2 = trim(nthfield(entita(row),"#",2))
nuevodatos.datos3 = trim(nthfield(entita(row),"#",3))
datos.append nuevodatos
next
250000 filas se procesan en unos pocos segundos
Espero que entiendo por completo … y que mi espaol ha de entender …
De lo contrario, he hecho dos veces la cifra de pollo …
If instead you have to put everything in a database record …
dim datos() as new classedatos
for row as integer = 0 to entita.ubound
dim recordw as new databaserecord
recordw.datos1 = trim(nthfield(entita(row),"#",1))
recordw.datos2 = trim(nthfield(entita(row),"#",2))
recordw.datos3 = trim(nthfield(entita(row),"#",3))
db.insertrecord("table",recordw)
if db.error then ...
else
db.commit
end if
next