Intérprete de texto

  1. last year

    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 last year

    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 last year

    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 last year

    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!