Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2004
Diego Diego is offline
Registrado
 
Registrado: jun 2004
Posts: 7
Poder: 0
Diego Va por buen camino
problemas con estring

Hola. Tengo un list box con un listado de palabras y 8 editores.
Eligo una palabra aleatorio del ListBox y luego lee letra por letra y la agrego a los editores, esto la hago a traves de variables. Si la palabra tiene menos que ocho letras desea que se borren los restantes editores. El código es el siguiente:

var
L1,L2,L3,L4,L5,L6,L7,L8: string;
Pa: String;
I: Integer;

begin
Randomize;
I:= Random(ListBox1.Items.Count - 1);
Pa:= ListBox1.Items.Strings[i];
L1:= PA[1];
L2:= PA[2];
L3:= PA[3];
L4:= PA[4];
L5:= PA[5];
L6:= PA[6];
L7:= PA[6];
L8:= PA[7];
......
Mi pregunta es la siguiente: si la palabra contiene cuatro letras, que valor es asignado a L4,L5,L6, L7,L8?
Viendo las variables a traves de Local variable, me aparecen: #0, &, #2, '',
Me pregunto, porque es esto. Ademas, que diferencia hay entre '' y #0
Si alguien me puede decir donde encontrar ayuda sobre como trabaja esto, se los agradecere, ya que, por mas que recorro la ayuda no encuentro nada.
Desde ya muchas gracias a todos
Responder Con Cita
  #2  
Antiguo 27-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No entiendo muy bien qué es lo que estás haciendo pero vamos a ver. Si la cadena tiene menos de ocho letras, digamos 5, entonces PA[6], PA[7], PA[8] contendrán basura, es decir, cualquier cosa que en esos momentos haya en la memoria. Sencillamente no puedes acceder a elementos inexistentes de la cadena.

En lugar de eso lo que puedes hacer es usar la función Copy:

Código Delphi [-]
L1 := Copy(PA, 1, 1);
L2 := Copy(PA, 2, 1);
L3 := Copy(PA, 3, 1);
L4 := Copy(PA, 4, 1);
L5 := Copy(PA, 5, 1);
L6 := Copy(PA, 6, 1);
L7 := Copy(PA, 7, 1);
L8 := Copy(PA, 8, 1);

ya que ésta te devolverá una cadena vacía en caso de que los parámetros no correspondan a ninguna porción de la cadena.

// Saludos
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 08:32:05.


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