Intérprete de texto

  1. last week

    Hola, estoy pensando en desarrollar un pequeño interprete de texto que me permita extraer de un estira cierta información. 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 pillaría de un TextArea por ejemplo.

    ¿Se le ocurre a alguien cómo meterle mano?
    Gracias.

  2. Ramon S

    May 18 Pre-Release Testers, Xojo Pro UPC, Europe (Barcelona, Spain)
    Edited last week by Ramon S

    Usando "Split"?

  3. Javier M

    May 18 Pre-Release Testers, Xojo Pro Madrid, Spain

    Hola,

    Quizá también puedas encontrar interesante el uso de expresiones regulares si la información a extraer lleva asociado algún tipo de marcado.

  4. Julen I

    May 19 Europe

    También puede ayudarte la función InStr, en combinación con Split.

    Julen

  5. 6 days ago

    Gracias chicos por la ayuda, iré probando y os mantendré informados.
    Gracias por la ayuda.

  6. Massimiliano C

    is not verified May 20 Europe (Italy, Bergamo)
    Edited 6 days ago by Massimiliano C

    Tal cosa?
    testo libre #etiqueta1 #etiqueta2
    testo libre #etiqueta1 #etiqueta2
    testo libre #etiqueta1 #etiqueta2
    testo libre #etiqueta1 #etiqueta2
    testo libre #etiqueta1 #etiqueta2
    testo libre #etiqueta1 #etiqueta2

    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 años de democracia #Biblioteca Nacional #NEOLOGISMOS
    La moda: edición facsimilar #Biblioteca Nacional #MODA USOS Y COSTUMBRES HISTORIA ARGENTINA SIGLO XVIII FACSIMILES
    La destrucción o el amor #Losada #POESIA
    Poemas amorosos: antología #Losada #POESIA
    Chiquitos de América Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA
    Chiquitos de América Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA
    Chiquitos de América Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA
    Chiquitos de América Latina: Cuba #Biblioteca Nacional #LITERATURA INFANTIL CUENTOS INFANTILES NARRATIVA CUBANA

    //

    Mientras tanto dividimos las líneas de texto de acuerdo con el tipo de carácter / caracteres usados ​​para el final de la línea.
    Mediante el análisis de los distintos tipos de sistema operativo común 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 línea de datos de lectura
    A continuación, 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 español ha de entender ...
    De lo contrario, he hecho dos veces la cifra de pollo ...

  7. Massimiliano C

    is not verified May 20 Europe (Italy, Bergamo)
    Edited 6 days ago by Massimiliano C

    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
  8. Grazie mille Massimiliano ;-)

or Sign Up to reply!