Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Recurso Curioso, No Se Me Ocurrio Otra Forma

Recurso Curioso, No Se Me Ocurrio Otra Forma
Artículo
Responder citando    Descargar mensaje  
Mensaje Recurso Curioso, No Se Me Ocurrio Otra Forma 
 
buenas,

en el programa VisorRV1960 estoy luchando para encontrar un buen método de búsqueda.

parece que lo mejor es el texto plano

así podemos buscar y encontrar pongamos las palabras con faltas o no.
también evitando los saltos de linea odiosos para las búsquedas en sqlite3.
hasta ahora el texto semiPlano    lo tenia en un txt y ahi buscaba pero no podia hacer otras cosas muy importantes que si ese texto estuviera en la misma base de datos.

entonces estoy probando (y me tiemblan las manos, aunque lo hago con proyecto de copia y base de copia también) de la siguiente manera, cree manualmente en las 66 tablas un campo llamado 'textoPlano'.

el dilema es como copiar, procesar y guardar el nuevo texto en las columnas correspondientes textoPlano.

al principio intente hacer todo sobre la misma base de datos no me dio resultado no se si sera posible.

después use otra método, de una base leía los datos y en otra copia injertaba el texto plano en los campos vacíos de la columna 'textoplano' y funciono demoro 40 minutos en copiar toda la base de datos, mejor que pasar dos años mas pasando a mano es jajajaj.

aquí les dejo el código por si a alguien le pueda servir o dar ideas.

Public Sub Button3_Click()
  
  Dim tabla As String
  Dim tablaX As Table
  Dim campoX As Field
  Dim r1 As Result
  Dim sql1, sql2 As String
  Dim textoPlano As String
  Dim idTabla As String
  Dim cn_Desktop As Connection
  
  Application.Busy = 1
  
  cn_Desktop = New Connection
  cn_Desktop.Type = "sqlite3"
  cn_Desktop.Name = "BibliaRV1960"
  cn_Desktop.Host = "/home/juan/Escritorio"
  
  Try cn_Desktop.Open()
  
  If Error Then
    Message.Error(Error.Text)
    Return
  Endif
  
  For Each tabla In subBiblia.TodasLasTablas()
    
    For Each tablaX In vp.Cn.Tables
      If tablaX.Name = tabla Then
        For Each campoX In tablaX.Fields
          If Left(campoX.Name, 2) = "id" Then
            idTabla = campoX.Name
            Break
          Endif
        Next
      Endif
    Next
    
    sql1 = Subst$("Select * from '&1'", tabla)
    r1 = vp.Cn.Exec(sql1)
    
    Do While r1.Available
      
      textoPlano = subFto.ConvertirTextoToTextoPlano(r1!texto, True)
      
      sql2 = Subst("Update '&1' set textoPlano='&2' where &3=&4", tabla, textoPlano, idTabla, r1[idTabla])
      
      labTabla.Text = "tabla=" & tabla & "  :  idtabla=" & idTabla & "  : r1[idTabla]=" & r1[idTabla]
      Wait 0.0001
    
      Try cn_Desktop.Exec(sql2)
      
      If Error Then
        Message.Error(Error.Text)
        Break
      Endif
      
      r1.MoveNext
    Loop
    
  Next
  
  Application.Busy = 0
  
End




 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Domingo, 24 Junio 2018, 00:45 ]
 


Recurso Curioso, No Se Me Ocurrio Otra Forma
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Recurso Curioso, No Se Me Ocurrio Otra Forma 
 
v3ctor:

Citar:
hasta ahora el texto semiPlano    lo tenia en un txt y ahi buscaba pero no podia hacer otras cosas muy importantes que si ese texto estuviera en la misma base de datos.


¿probaste con el comando grep? Es muy potente... y rápido (supongo que mucho más que la base de datos)

https://fortinux.gitbooks.io/humble...n_gnulinux.html



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Domingo, 24 Junio 2018, 12:57 ]
Responder citando    Descargar mensaje  
Mensaje Re: Recurso Curioso, No Se Me Ocurrio Otra Forma 
 
vector y porque no implementas el proyecto sword en gambas o haces una interfaz gambas para sword, creo esto el programa rv reinventa la rueda en cienrto nivel, lo bueno es que se enfoca en español pero no deja de ser lo mismo que xiphos

creo que concentrarte en saber como usar libsword o la linea de comandos es mejor asi puedes echar mas codigo n nuevas features para el programa en si



 
mckaygerhard - Ver perfil del usuario Enviar mensaje privado  
mckaygerhard [ Martes, 10 Julio 2018, 15:41 ]
Responder citando    Descargar mensaje  
Mensaje Re: Recurso Curioso, No Se Me Ocurrio Otra Forma 
 
mira vector par no lidiar con importar shared libs complicadas s puede en cambio usar la linea de comandos de sword https://packages.debian.org/sid/diatheke y terminarias haciendo un frontend de esta, si le hace falta algo simplemente haces el request a el proyecto

esto da potencia porque esa linea de comandos seria el "engine" y podrias entonces con el mismo codigo gamba hacer uan version web y otra desktp.. inclusive importarlo a androit usando webviews y cgi (claro esto ultimo solo online pero es algo)

el tema es que seria menos complicado que pensar codigo de busqueda propio



 
mckaygerhard - Ver perfil del usuario Enviar mensaje privado  
mckaygerhard [ Martes, 10 Julio 2018, 15:51 ]
Responder citando    Descargar mensaje  
Mensaje Re: Recurso Curioso, No Se Me Ocurrio Otra Forma 
 
mckaygerhard escribió:  
mira vector par no lidiar con importar shared libs complicadas s puede en cambio usar la linea de comandos de sword https://packages.debian.org/sid/diatheke y terminarias haciendo un frontend de esta, si le hace falta algo simplemente haces el request a el proyecto

esto da potencia porque esa linea de comandos seria el "engine" y podrias entonces con el mismo codigo gamba hacer uan version web y otra desktp.. inclusive importarlo a androit usando webviews y cgi (claro esto ultimo solo online pero es algo)

el tema es que seria menos complicado que pensar codigo de busqueda propio


parece que esta interesante lo que dices cuando pueda lo ojeo a ver como funciona, gracias por el pique gambero jjaajja.



 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Martes, 10 Julio 2018, 17:31 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron