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 10-05-2022
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Se salta el número 10, el 20 y el 21...

Quiero hacer un listado de número sucesivos de dos dígitos (no Integers) hasta el 24 y este modo se salta el 10, el 20 y el 21...
Y no entiendo por qué. No encuentro el error. A ver si alguien me puede ayudar. Gracias.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
   Sub: String[2];   S : String ;  I: Integer;
begin
Edit1.Clear;
S := ''; Sub := '' ;
for I := 1 to 24 do
begin
    IF I <= 9  then Sub := Format('%.*d', [2,I]) ELSE Sub := InttoStr( I );
    if  POS(Sub, S) = 0 then INSERT( Sub, S, Length(S)+1 ) ;
     //ShowMessage(' FALTAN EL 10, 20 Y EL 21 POR el morro');
end;
Edit1.Text := S ;
end;

Última edición por bulc fecha: 10-05-2022 a las 22:23:39.
Responder Con Cita
  #2  
Antiguo 10-05-2022
lupinfree lupinfree is offline
Registrado
 
Registrado: mar 2007
Posts: 5
Poder: 0
lupinfree Va por buen camino
Hola, fijate que: Cuando I= 10 pos vale 2, cuando I=20 pos vale 4 y cuando I=21 pos vale 21.
No le veo la utilidad del If Pos.... yo haria solamente

Código Delphi [-]
S := S + Sub;

y listo el pollo, quedando la cadena
010203040506070809101112131415161718192021222324.

para que veas cuando tenes la cadena completa en el segundo termino esta el 10. Y Pos te toma ese lugar.
y asi con el 20 y 21 . Marqué con rojo las posiciones que ve.
Responder Con Cita
  #3  
Antiguo 11-05-2022
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Muchas gracias por tu ayuda

Lo tengo en cuenta y lo corrijo.
Saludos.
bulc
Responder Con Cita
  #4  
Antiguo 11-05-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
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
Cita:
Empezado por bulc Ver Mensaje
Quiero hacer un listado de número sucesivos de dos dígitos (no Integers) hasta el 24 y este modo se salta el 10, el 20 y el 21...
Sólo como sugerencia y para simplificar el código (ya lo tienes solucionado).
El propio Format te permite formatear los números a 2 posiciones sólo en caso de que sea necesario, así que puedes evitar el IF.

Puedes conseguir lo mismo con un código más simple similar a este:

Código Delphi [-]
var
  s:String;
begin
  for var I:integer := 1 to 24 do
    s := s + Format('%.2d', [i]);
  edit1.Text := s;
__________________
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
XML no salta linea oscarac Varios 3 22-05-2019 07:58:15
OnPostError no salta en ClientDataSet M. FM. Conexión con bases de datos 9 28-10-2008 12:54:41
Un duende asusta a la población de Salta Casimiro Notevi La Taberna 13 14-03-2008 18:38:24
Inundaciones en Salta Robert01 La Taberna 4 29-01-2008 23:42:20
zReport, salta al comenzar teletranx Impresión 6 16-09-2004 21:45:49


La franja horaria es GMT +2. Ahora son las 10:46:25.


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