Intérprete de texto

  1. 7 months ago

    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

    18 May 2017 Pre-Release Testers, Xojo Pro UPC, Europe (Barcelona, Spain)
    Edited 7 months ago

    Usando "Split"?

  3. Javier M

    18 May 2017 Pre-Release Testers, Xojo Pro AprendeXojo - 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. También puede ayudarte la función InStr, en combinación con Split.

    Julen

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

  6. Massimiliano C

    is not verified 20 May 2017 Europe (Italy, Bergamo)
    Edited 7 months ago

    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 20 May 2017 Europe (Italy, Bergamo)
    Edited 7 months ago

    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!