Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2004
Avatar de Magician^
Magician^ Magician^ is offline
Miembro
 
Registrado: mar 2004
Ubicación: Lima - Perú
Posts: 74
Poder: 23
Magician^ Va por buen camino
Pues si me indicas en que parte tienes dificultades te podre ayudar mejor, básicamente se trata de leer un archivo de texto, linea a linea, verificar si la linea leida es uno de nuestros "tag" y procesar la información que continúa segun indique el "tag" hasta encontrar la señalización de fin (":<end>" en el ejemplo).
al leer la primera línea ya sabrias cuantos memos tienes que crear en forma dinámica, para saber si una linea es un "tag" puedes usar la siguiente comparación, asumiento q en la variable S esta la linea de texto leida del archivo:
if RightStr(S,2)=':<' then // aquí ya sabes q es un tag.
Para saber si se trata de un tag en particular examina el texto antes del signo '=' y para el valor (como por ejemplo el numero de memos) convierte con un strtoint el valor comprendido entre el = y el final de la cadena menos 1 (para quitar el '>'):
tag=copy(S,3,Pos('=',S)-1); Con esto obtienes el tag en una cadena.
tagvalue=strtoint(copy(S,Post('=',S)+1,Length(S)-1)); y con esto el valor si es necesario.

Para crear el archivo, usa el rewrite, grabas primero el tag con el numero de memos y luego la información segun el formato del ejemplo.

En realidad la lógica es sencilla, cuando tengas listo el programa te va a sorprender lo pequeño y simple q resultó.

Nuevamente mi consejo es que en vez de usar ':<' uses algun tipo de secuencia de códigos de escape no vaya a ser q tu usuario justo se le ocurra escribir al comienzo de una linea ":<end" y el programa lo interprete como un tag. Aunque esto es algo exagerado, pero hay usuarios y usuarios!!

Saludos.
__________________
MAGICIAN^
Lima - Perú
=======
MagicTech.blogspot.com
Responder Con Cita
  #2  
Antiguo 27-04-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Y si usas XML????
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 27-04-2004 a las 17:10:29.
Responder Con Cita
  #3  
Antiguo 29-04-2004
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 24
esocrates Va por buen camino
Cita:
Empezado por delphi.com.ar
Y si usas XML????
Hola Delphi.com.ar. Otros miembros del foro me han sugerido lo mismo. Me gustaría mucho intentarlo, pero no encuentro en la ayuda de Delphi 6 algo que me oriente cómo implementarlo. Si me sugerís alguna forma de acercarme al tema te lo agradeceré
Un saludo
Responder Con Cita
  #4  
Antiguo 29-04-2004
Avatar de Magician^
Magician^ Magician^ is offline
Miembro
 
Registrado: mar 2004
Ubicación: Lima - Perú
Posts: 74
Poder: 23
Magician^ Va por buen camino
no te recomiendo q uses xml puesto que si no usas algún método para cambiar el texto a guardar un usuario puede pegar o escribir texto q contenga etiquetas xml. Luego el programa podría recuperar inadecuadamente la información del archivo.
__________________
MAGICIAN^
Lima - Perú
=======
MagicTech.blogspot.com
Responder Con Cita
  #5  
Antiguo 27-04-2004
the darkness the darkness is offline
Miembro
 
Registrado: ene 2004
Posts: 30
Poder: 0
the darkness Va por buen camino
varios memos en un solo archivo

pues a mi parecer se estan complicando bastante la vida todos, ya que para guardar todo lo que quieran de un memo o mil o los que quieran lo pueden pasar de la siguiente manera que cabe mencionar ya lo han dicho pero no lo han probado:

memoprincipal.text:=memoprincipal.text+memo1.text;
memoprincipal.lines.add('*****'); // con esto separas o indicas que termino un memo
memoprincipal.text:=memoprincipal.text+memo2.text;
memoprincipal.lines.add('*****'); // con esto separas o indicas que termino un memo
memoprincipal.text:=memoprincipal.text+memo3.text;
memoprincipal.lines.add('*****'); // con esto separas o indicas que termino un memo
memoprincipal.text:=memoprincipal.text+memo4.text;
memoprincipal.lines.add('*****'); // con esto separas o indicas que termino un memo
memoprincipal.text:=memoprincipal.text+memo5.text;
memoprincipal.lines.add('*****'); // con esto separas o indicas que termino un memo
.
.
.
.
memoprincipal.lines.savetofile('c:\prueba.txt');


y asì cuando lo quieras recuperar, pasalo a otro memo con:
memo1.lines.loadfromfile('c:\prueba.txt');
lo recorres con un for y otra vez lo puedes pasar a los emmops que corresponden
ojala te sirva
Responder Con Cita
  #6  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cool

tanto el método de esocrates como el de the darkness fallarían en el caso que un usuario (malentencionadamente o no) incuya una línea que contenga el "marcador" en uno de los memos. Es el principal problema de usar este tipo de soluciones. La solución a esto es ir escaneando el memo, y utilizar secuencias de escape o algo similar para evitar esto.

digamos, que si encontras la línea *****, la guardas como \*****, y al leer haces lo inverso. Y si encontras la línea \***** (que también es posible), la guardas como \\*****, y asi sucesivamente.

Tengo otra solución en mente, que involucraria un pequeño componente... si tengo tiempo de armarlo en los proximos días, publicaré aqui mismo el código.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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 23:06:39.


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