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

 
 
Herramientas Buscar en Tema Desplegado
  #20  
Antiguo 15-02-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 27
eduarcol Va por buen camino
a ver si entendi lo que explicas, necesitas recursividad, algo como esto:

declara unas variables globales:

Código Delphi [-]
nLista: array[1..14] of integer;
    procedure Incrementar(cCadena: String);
    procedure Aumentar(nIndice:Integer);

luego este es el codigo, le pasa la cadena como parametro al procedimiento incrementar y te devolvera una cadena incrementada segun la regla de la A-Z y 0-9

Código SQL [-]
procedure TForm1.Incrementar(cCadena: String);
var
   nCaracter: String;
   nIdx: Integer;
begin
   //Carga el vector de enteros
   for nIdx := 1 to 14 do
   begin
      nCaracter := Copy(cCadena, nIdx, 1);
      nLista[nIdx] := Ord(nCaracter[1]);
   end;

   //Recorre el vector aumentando las cifras
   Aumentar(14);

   //Arma de nuevo la cadena
   cCadena := '';
   for nIdx := 1 to 14 do
   begin
      nCaracter := Char(nLista[nIdx]);
      cCadena := cCadena + nCaracter;
   end;

end;

procedure TForm1.Aumentar(nIndice: Integer);
begin
   //si llego al principio se sale
   if nIndice <= 0 then
      Exit;
   //Aumenta un caracter en la posicion deseada
   nLista[nIndice] := nLista[nIndice] + 1;
   //Si es 91 quiere decir que viene de la Z, lo devuelve al 65 = A, incrementa el anterior
   if nLista[nIndice] = 91 then
   begin
      nLista[nIndice] := 65;
      Aumentar(nIndice - 1);
   end
   //Si es 58 quiere decir que viene del 9, lo devuelve al 48 = 0, incrementa el anterior
   else if nLista[nIndice] = 58 then
   begin
      nLista[nIndice] := 48;
      Aumentar(nIndice - 1);
   end;
end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ordenar una table numericamente por un campo alfanumerico jose.mendez Tablas planas 2 31-12-2007 17:56:16
longitud de un campo alfanumerico dtomeysoto SQL 2 10-03-2007 20:08:55
Generacion de scripts AMO Oracle 2 10-10-2005 17:55:15
Generación de archivos dcu jplj Varios 2 26-04-2005 21:44:29


La franja horaria es GMT +2. Ahora son las 13:33:02.


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