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

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 14-05-2005
Elfoscuro Elfoscuro is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
Elfoscuro Va por buen camino
Lo primero deberías de poner los límites del bucle para que veamos por donde te mueves. Yo para los strings te aconsejo que controles el tope " length (variable)-1", ya que si la cadena mide 10 char y te vas a mirar el 11 te dará error. En un bucle for, para recorrer la cadena usa:

Código Delphi [-]
for f:=0 to length(cadena)-1 do
begin
end;
Otra cosa. No le pongas límite a la cadena. Declaralá como:

Código Delphi [-]
var cadena:string;

y no como

Código Delphi [-]
var cadena: string[30];

Piensa en las string como en lo que son, arrays dinámicos.

Más cosas. La línea:

Código Delphi [-]
guarda_variable[j]:= cadena[i]; 

la verdad, me da yuyu. Pienso que sería mejor así:

Código Delphi [-]
guarda_variable:=guarda_variable+cadena[i]; 

Antes del bucle inicializaría a '' la variable guarda_variable y pasaría de la variable j. Ten en cuenta que según tú lo haces, si la cadena mide 0 caracteres, en el primer paso del bucle while ya estás intentando llegar al caracter 1, con lo que peta.

Veo que no estás controlando la salida del bucle para cuando llegues a fin de cadena. Sobre todo, mirate ésto y lo anterior, que me parece que es donde te está petando.

Un consejo "cutre" pero funcional. Si no ves mentalmente lo que está pasando, haz lo que hago yo. Pon la siguiente línea dentro del while:

Código Delphi [-]
showmessage(inttostr(i)+' '+guarda_variable+' '+cadena[i]);

Te lo puedes decorar a tu gusto, pero así consigues ver en cada paso el valor de cada variable. A mi me ayuda mucho, y la verdad, me resulta más cómodo que el depurador.

Saludos del elfo
Responder Con Cita
 



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 03:34:10.


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