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-12-2004
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Question Guardarme una Cadena de texto de un Memo

Hola, estoy creando una aplicación que me tarifica las llamadas de una centralita telefónica, he programado la conexión por el puerto Com y veo las tramas que me manda la centralita en un Memo.
Hasta hay todo correcto, ahora lo que quiero es coger el número del que me llama, para contrastarlo y ver si lo tengo en la base de datos saber quien es etc... Bueno la cuestión es que la central me manda una trama de este tipo:

00 734 041129 1130 204 00209 0000 0 XXXXXXXXX

Las X serian el número de teléfono del que me ha llamado y la central me envia muchas tramas seguidas . con el siguiente codigo consigo colocar el cursor delante de la primera X:
Código Delphi [-]
with Memo1 do
 begin
    // Vamos a la linea 0, Caracter 40,que es el numero de teléfono
    selstart:=perform(EM_LineIndex,0,0)+40;
    perform(EM_SCROLLCARET,0,0);
    // Hacemos focus en el Memo
    SetFocus;
 end;

Con un For recorro todo el número de teléfono y NO se como leer el caracter que va pasando y guardarmelo, mi pregunta es:

¿Como puedo colocarme en la linea de la primera trama no procesada?
y luego ¿Como puedo recorrer todas las lineas(tramas) que tengo en el memo?

No se si alguien podra ayudarme pero de todas formas Gracias.

Un Saludo.
Responder Con Cita
  #2  
Antiguo 02-12-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.298
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No se si te he entendido bien, pero yo no trabajaría directamente soobre el Memo, sino sobre la propiedad Lines (que es un TStrings); Accediendo a Lines puedes hacer:

Código Delphi [-]
  Str := Memo1.Lines[i];   para acceder a cualquier línea (i)

A partir de ahí trabaja con el String Str que te será más sencillo.

Para saber cuantas líneas tienes:

Código Delphi [-]
  NumLineas := Memo1.Lines.Count;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 02-12-2004
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Hola Neftalí, conforme dices tu como me coloco en el caracter 40 de la linea copio los 9 caracteres siguientes que seran el numero de tlf y me los guardo.

La cuestion es que yo quiero guardarme el numero de telefono de todas las llamadas que reciba, por eso tengo que coger y guardarme las XXXXXXXXX de todas las lineas, En mi base de datos contrastar el telefono nuevo con los que tengo en la base de datos y sino esta introducirlo añadiendole tambien el nombre de la empresa que llama etc...


Gracias por responder tan rapido.
Responder Con Cita
  #4  
Antiguo 02-12-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.298
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si no he entendido mal, en tu memo cada línea es de ésta forma:

00 734 041129 1130 204 00209 0000 0 XXXXXXXXX

de forma que tendrás un memo lleno de líenas de éste estilo:

00 735 445567 1454 204 00209 0000 0 XXXXXXXXX
00 734 046555 1566 204 00209 0000 0 YYYYYYYYY
00 734 041129 1130 204 00209 0000 0 ZZZZZZZZZZ

Para obtener los números debes hacer un bucle:

Código Delphi [-]
for i=0 to (Memo1.Lines.Count - 1) do begin
Str := Memo1.Lines[i];
// Sacar del String el número
.....
end;

Ésto te recorre todas las líneas del Memo, en el ejemplo anterior el bucle se hará tres veces (ya que existen 3 líneas).

Pedona, si no te he entendido bien, y no es ésta la cuestión.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 02-12-2004
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Estas perdonado hombre lo más seguro es que no me haya explicado yo bien, pero, la cuestión es que no se sacar el numero del String, recorrer las lineas del memo si que se hacerlo lo que no se hacer es sacar del Str que tu has creado el Número.
Responder Con Cita
  #6  
Antiguo 02-12-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.298
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Por eso te explicaba que hay que recorrerlas todas.

Otra opción es ir eliminandolas del Memo a medida que las vayas procesando (extaryendo el número).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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


La franja horaria es GMT +2. Ahora son las 16:40:03.


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