Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2007
hmoner hmoner is offline
Miembro
 
Registrado: may 2005
Posts: 52
Poder: 19
hmoner Va por buen camino
[AYUDA] Backup de SMS a Base de Datos

Hola Amigos.

Tengo una lista de archivos txt con un formato especifico, que han sido grabados por una aplicacion que hace backup de SMSs en telefonos con Windows Mobile

Como podran ver a continuacion en el siguiente link, he realizado un simple programita, que toma esa lista de archivos txt, y con solo hacer doble click muestra el contenido del archivo en un TMemo

http://xs217.xs.to/xs217/07271/smsbackup.jpg

Lo que quiero hacer en realidad es

1- Crear una tabla en una base de datos con los siguientes campos:
remitente (nombre o numero de celular), destinatario (nombre o numero de celular), fecha y mensaje.

2- Procesar estos archivos de texto especiales, e insertar en la tabla cada mensaje (registro de la tabla) que se vaya procesando

3- Mostrar los mensajes con la aplicacion, pero ejecutando consultas por fechas, horarios, etc. (realizando SQL)

Los puntos 1 y 3 son faciles y se como hacerlos

El que me tiene MUY intrigado es el punto 2

Alguien me puede ayudar a procesar esos archivos de texto con ese formato especial ? Lo que no se es como leer y procesar ese formato, y encima como veran en la captura, a veces el mensaje sale cortado con un caracter especial (que sale como un cuadradito vacio). Como debere tratar estos caracteres ?

Desde ya muchisimas gracias por la ayuda, y perdon por el mensaje tan largo

Saludos,
Responder Con Cita
  #2  
Antiguo 03-07-2007
hmoner hmoner is offline
Miembro
 
Registrado: may 2005
Posts: 52
Poder: 19
hmoner Va por buen camino
HELP !!
Alguien tiene alguna idea de como procesar este archivo?
Responder Con Cita
  #3  
Antiguo 03-07-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si ya lo cargas en un memo la cosa está fácil:

1.[Sender]:XXXXX[Recieved]
00123456789

Campo remitente de la Tabla:
Código Delphi [-]
Ancho_hasta_Recieved:=9 //hay que hallarlo
Remitente:Copy(Cadena,10, Ancho_Hasta_Recieved);

La fecha y la hora habría que estudiar como capturarla ya que según veo no utiliza 2 dígitos para el día y mes.

Ver si lleva alguna marca de inicio de texto del mensaje o simplemente es donde acabe la hora:

Bueno es una idea ya nos dirás como lo vas resolviendo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 03-07-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Añado que en cuanto a las cadenas con la fecha y hora sería posible una vez delimitadas tratarlas con StrToDateTime.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
x:TdateTime;
begin
x:=StrToDateTime(Edit1.Text);
Edit2.Text:=DateTimeToStr(x);
end;

Un Saludol.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 10-07-2007
hmoner hmoner is offline
Miembro
 
Registrado: may 2005
Posts: 52
Poder: 19
hmoner Va por buen camino
Hola marcos
Gracias por la ayuda, y permiteme hacer algunas preguntas del caso

En la primer linea de los archivos de mensajes recibidos tengo esto por ejemplo:
[Sender]: Ernesto Perez Garcia Gomez [Received]: 2007-3-2 13:58:55

Entiendo lo de tomar con la funcion copy hasta el indice donde comienza el nombre, pero como hago para extraer hasta que comience [R... ? Osea, no todos los nombres tienen la misma longitud... Supongo que como dice tu primer respuesta, debere hallar la longitud del nombre primero... pero no se como

Hasta ahora tengo este codigo
Código:
...
    if ( pos('[Receiver]',buffer) > 0 ) then
    begin
      listbox1.Items.Add( copy(buffer,12,13) );
...
Alli uso 13, pero no siempre sera esa longitud

Y otra pregunta, parecida a la anterior...
Cuando lea el mensaje, debere hacer lo mismo para saber si llegue al final del mensaje, no ?

Resolviendo esto podre solucionar todo para los archivos de mensajes enviados

Muchisimas gracias
Responder Con Cita
  #6  
Antiguo 10-07-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Para empezar a hacer la prueba, crea un formulario con 2 Tedit, en el primero escribe el texto que muestras en tu pregunta (corrige Reciever por Recieved) y el segundo déjalo tal cual.

Ahora con este código verás como capturamos el nombre en cuestión.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
nIniSender:Integer;
nFinSender:Integer;
begin
nIniSender:=10;
nFinSender:= pos('[Received]',Edit1.Text);
nFinSender:= nFinSender - nIniSender;

  if nFinSender > 0 then
  Edit2.Text:=Copy(Edit1.Text,nIniSender,nFinSender);
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 12-07-2007
hmoner hmoner is offline
Miembro
 
Registrado: may 2005
Posts: 52
Poder: 19
hmoner Va por buen camino
Funcionó perfecto Marcos
supongo que
nIniSender:=10;
corresponde a la cantidad de caracteres desde el inicio que debo tomar para que empiece a obtener el nombre, no ?

Para la fecha, hora, y mensaje, debo hacer lo mismo ?

Gracias
Responder Con Cita
  #8  
Antiguo 12-07-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si eso es, dada la estructura el comienzo es el caracter 10, por eso lo incluyo como fijo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #9  
Antiguo 12-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
No sabes hacer autómatas?,

eso es un trabajo para un Autómata, te saldría facilísimo y mucho mas adaptable
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Backup a mi Base De Datos Hunter Firebird e Interbase 1 18-02-2007 11:31:02
Problemas en la base de datos (backup) kurroman Firebird e Interbase 2 23-01-2007 10:58:16
Backup de base de datos carlosll Firebird e Interbase 3 31-08-2006 19:01:24
Backup de la base de datos desde Delphi topolino MS SQL Server 1 17-05-2005 22:09:30
Error al hacer un Backup de Base de datos. eliasterrero Firebird e Interbase 0 26-02-2004 13:06:26


La franja horaria es GMT +2. Ahora son las 11:19:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi