![]() |
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:
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: :confused: ¿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. |
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:
A partir de ahí trabaja con el String Str que te será más sencillo. Para saber cuantas líneas tienes:
|
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. |
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:
É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. |
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.
|
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). |
No me entiendes, lo que te quiero decir es que una vez que has pasado la linea a la variable Str como saco de esa string los caracteres que yo quiera.
Cita:
¿Como se hace? Por ejemplo: si tengo Str:=00 734 041129 1130 204 00209 0000 0 XXXXXXXXX Como consigo yo quedarme solo con las XXXXXXXXX No se si me habre explicado bien ahora, espero que me entiendas y puedas ayudarme.Muchos Gracias de todos Modos.Un Saludo. |
Una vez que tengas la linea que quieres en un string, para sacar el numero de telefono podrias usar la siguiente funcion
numerotlf:=copy(lineaguardada,40,9); 40 porque dices que empieza en la 40 el numero y 9 porque su longitud (del numero) es de 9 caracteres. Saludos. |
Gracias llonigualker me ha funcionado, ahora mi problema es que en el memo auxiliar que me he puesto para que me saque todos los números que haya solo me saca el de la primera linea.Mi código es este:
Haber si me podeis decir que es lo que tengo mal por que ya os digo, solo me pone la primera linea de mi tarificador en Mprueba. Gracias a los dos me habeis ayudado mucho. Un saludo y a pasar buena tarde.;) |
Te falta un Mprueba.addlines o algo asi si quieres añadir lineas al memo temporal o auxiliar.
Saludos. |
o Mprueba.lines.add
Miralo tu en las propiedades del tmemo. |
Muchisimas gracias Llonigualker solucione el problema, me faltaba añadir las lineas a mi Tmemo auxiliar.
Un Saludo.;) |
La franja horaria es GMT +2. Ahora son las 08:57:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi