Recurso Curioso, No Se Me Ocurrio Otra Forma


Objetivo: 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

Objetivo: 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

Objetivo: 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

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 2.5913s (PHP: -95% SQL: 195%)
Consultas SQL: 45 - Debug off - GZIP Activado