Ver Mensaje Individual
  #4  
Antiguo 03-10-2013
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Reputación: 17
juank1971 Va por buen camino
no es virus es para mi hermano de electrónica

Ja, No NO es para un virus:
Gracias amigo voy a probar esta noche si mi hija me deja un tiempo de máquina, Gracias.


Ees para una aplicación que le estoy haciendo a mi hermano que me dijo que quería tener todo lo que el necesita de electrónica en una sola base de datos, que sea portable, y tener siempre a donde quiera que va su minienciclopedia que el le pueda agregar cosas y hacer búsquedas. En eso incluye .doc, pdf, html, exe,jpg,bmp etc todo lo que usa para su trabajo de electrónica.

Le programé la aplicación en delphi XE4 todo con la base de datos en sqlite3 funciona muy bien, lo que mejor me quedo es que, escaneo el texto de todos los ficheros pdf,word,xls y lo guardo en un campo aparte entonces se pueden hacer búsquedas de subcadenas de textos en cualquier tipo de fichero y eso lo hace muy rápido incluso mejor que windows porque windows no busca txt dentro de los pdf.

Con este procedimiento que te pongo abajo, extraigo los ficheros (campo blob) de la base de datos al hacer dbclick en el grid que muestra los nombres, y funciona bien pero tengo que crearlo en el disco, o sea lo saco de la base sqlite para el disco duro y luego lo ejecuto con el ShellExecute, todo ok, pero después tengo que eliminar el fichero, y si esta en uso no puedo, lo tengo que ir guardando en un arreglo los nombres con los caminos respectivos y los elimino al cerrar la aplicación que es un poco incómodo, y si hay muchos abiertos se demora cerrando, por eso estaba tratando de buscar algo como lo que me mandas a ver cómo funciona en memoria, o quizás combinados a ver que pasa.

Gracias muchas , como decía mi abuelo Salud y Pesetas para ti


Código Delphi [-]
.........................

  File1 := datamodule1.Qfichero.CreateBlobStream( datamodule1.Qfichero.FieldByName('fichero'), bmReadWrite);

try
  File1.Seek(0, 0);
   try
     FS := TFileStream.Create(n, fmCreate);
   except
      //on E: Exception do showmessage('dd');

   end;

  FechaFicheros[indice].Nombre := ExtractFileName(n);

  try
    // Copiar el contenido
    try
     FS.CopyFrom(File1, File1.Size);
    except

    end;

    ShellExecute(Form2.Handle,nil,PChar(n),'','',SW_SHOWNORMAL);

  finally
   try
     FS.free;
   except

   end;

  end;
finally
  try
    File1.free;
  except

  end;

end;
end;
Responder Con Cita