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 12-02-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Agregar digitos

Hola.

reglas que se tienen que cumplir:

Numero de Personas: tiene que tener 11 dígitos (sino tiene los 11 dígitos rellenar con 0 a la derecha los dígitos
faltan-te);


Ej: Nº personas 12345 : entonces que me imprima en pantalla lo siguiente=00000012345


se que tengo que utilizar una condicion de pregunta, y utlizar las funciones pos, str (pero hasta hay es lo que se)...

espero sus respuesta por favor y gracias...
Responder Con Cita
  #2  
Antiguo 12-02-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola maxzama.

Tres opciones:
Código Delphi [-]
var
  cad: string;
begin
  cad:= '12345';
  ShowMessage(
  {Opcion 1} StringOfChar('0', 11 - Length(cad)) + cad   + ' - ' +
  {Opcion 2} Format('%.11d',[StrToInt(cad)]) + ' - ' +
  {Opcion 3} Copy('00000000000', 1, 11 - Length(cad)) + cad
  );

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 12-02-2015 a las 20:10:07. Razón: Agregar opción
Responder Con Cita
  #3  
Antiguo 12-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por maxzama Ver Mensaje
...se que tengo que utilizar una condicion de pregunta, y utlizar las funciones pos, str (pero hasta hay es lo que se)...
espero sus respuesta por favor y gracias...
Como siempre, tú esforzándote al máximo para aprender
Responder Con Cita
  #4  
Antiguo 12-02-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
gracias, tu información esta copiado y plasmado...
Responder Con Cita
  #5  
Antiguo 12-02-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
maxzama,

Cita:
Empezado por maxzama
...Numero de Personas: tiene que tener 11 dígitos...Ej: Nº personas 12345 : entonces que me imprima en pantalla lo siguiente=00000012345...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   LenStr : Integer;
   AuxStr : String;
   i : Integer;

begin

    AuxStr := Edit1.Text;

    LenStr := Length(AuxStr);

    if LenStr > 11 then
       raise Exception.Create('Longitud Máxima de Variable es 11');

    for i := 1 to LenStr do
       if not (AuxStr[i] in ['0'..'9']) then
          raise Exception.Create('Solo se Permiten Caracteres Númericos');

    if LenStr < 11 then
       AuxStr := StringOfChar('0', 11-LenStr) + Edit1.Text;

    ShowMessage(AuxStr);

end;

procedure TForm1.Button2Click(Sender: TObject);
var
   LenStr : Integer;
   AuxStr : String;
   i : Integer;

begin

   AuxStr := Edit1.Text;

   LenStr := Length(AuxStr);

   if LenStr > 11 then
      raise Exception.Create('Longitud Máxima de Variable es 11');

   for i := 1 to LenStr do
      if not (AuxStr[i] in ['0'..'9']) then
         raise Exception.Create('Solo se Permiten Caracteres Númericos');

   AuxStr := Format('%.11d',[StrToInt(Edit1.Text)]);

   ShowMessage(AuxStr);

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite rellenar con 0 a la izquierda una cantidad numérica de máximo 11 dígitos y muestra el resultado por medio de 2 métodos diferentes.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 12-02-2015 a las 22:54:03.
Responder Con Cita
  #6  
Antiguo 12-02-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Gracias, me a sido muy útil (nlsgarcia). Me as dado nuevas ideas...
Responder Con Cita
  #7  
Antiguo 12-02-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Asi es: Casimiro Notevi.

jajaja.

Te entiendo Casimiro Notevi. Se que no muestro mis código(al hacer las preguntas), pero antes de hacer una pregunta, leo bastante.

Y así es como entiendo, de cada código que me muestran(aunque sea un código sencillo).
Responder Con Cita
  #8  
Antiguo 12-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, está bien que aprendas, de eso se trata
Responder Con Cita
  #9  
Antiguo 12-02-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
maxzama,

Cita:
Empezado por maxzama
...antes de hacer una pregunta, leo bastante...


Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
  #10  
Antiguo 12-02-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Hola, nuevamente.

// e intentado varias veces y no e encontrado hacer lo siguiente:

Como puedo agregar los 0 al contrario. Es decir agregar lo cero a la derecha...


Ej:

Código Delphi [-]
Regla a cumplir: cad= 10 dígitos;

cad:123

imprima en pantalla 1230000000

Este es el siguiente código(Se que son, para reírse o llorar ):

n:=StringOfChar(' ',11)

while not (Length(n)=cad) do
begin
      cad:=cad+'0';
      next;
end;

espero sus respuesta por favor y gracias...
Responder Con Cita
  #11  
Antiguo 12-02-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
gracias, nlsgarcia. (ya tengo conque, para perder el tiempo)...
Responder Con Cita
  #12  
Antiguo 12-02-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
maxzama,

Cita:
Empezado por maxzama
...Como puedo agregar los 0 al contrario. Es decir agregar lo cero a la derecha...


Revisa este código:
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
   LenStr : Integer;
   AuxStr : String;
   i : Integer;

begin

    AuxStr := Edit1.Text;

    LenStr := Length(AuxStr);

    if LenStr > 11 then
       raise Exception.Create('Longitud Máxima de Variable es 11');

    for i := 1 to LenStr do
       if not (AuxStr[i] in ['0'..'9']) then
          raise Exception.Create('Solo se Permiten Caracteres Númericos');

    if LenStr < 11 then
       AuxStr := Edit1.Text + StringOfChar('0', 11-LenStr);

    ShowMessage(AuxStr);

end;
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite rellenar con 0 a la derecha una cantidad numérica de máximo 11 dígitos y muestra el resultado.

Espero sea útil

Nelson.
Responder Con Cita
  #13  
Antiguo 12-02-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
gracias, disculpa la molestia.

lo tenia en mis narices:

Código Delphi [-]
AuxStr := Edit1.Text + StringOfChar('0', 11-LenStr);

Código Delphi [-]
He := h+StringOfChar ‎('0',10-length(h));
Responder Con Cita
  #14  
Antiguo 13-02-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola maxama.

Y para redondear la cosa, podés unificar las acciones en una sola función que reciba como parámetro una cantidad arbitraria de ceros:
Código Delphi [-]
type
  TZeroCourse = (zLeft, zRight);

function AddZeros(const cifra: string; const zeros: Integer;
  Course: TZeroCourse): string;
begin
  if Course = zLeft then
    Result:= StringOfChar('0', zeros - Length(cifra)) + cifra
  else
    Result:= cifra + StringOfChar('0', zeros - Length(cifra));
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:= AddZeros('13245',17, zLeft);
  Label2.Caption:= AddZeros('12345',15, zRight);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #15  
Antiguo 13-02-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Daniel,

Cita:
Empezado por ecfisa
...Y para redondear la cosa, podés unificar las acciones en una sola función que reciba como parámetro una cantidad arbitraria de ceros...


Nelson.
Responder Con Cita
  #16  
Antiguo 13-02-2015
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
Cita:
Empezado por ecfisa Ver Mensaje
Hola maxama.

Y para redondear la cosa, podés unificar las acciones en una sola función que reciba como parámetro una cantidad arbitraria de ceros:
De hecho, si además le pasas otro parámetro "const Carácter: Char" puedes concatenar cualquier tipo de dígito o carácter alfanumérico:

Código Delphi [-]
type
  TZeroCourse = (zLeft, zRight);

function AddChars(const cifra: string; const zeros: Integer; const Caracter: Char;
  Course: TZeroCourse): string;
begin
  if Course = zLeft then
    Result:= StringOfChar(Caracter, zeros - Length(cifra)) + cifra
  else
    Result:= cifra + StringOfChar(Caracter, zeros - Length(cifra));
end;

Y su uso, por ejemplo:

Código Delphi [-]
Label1.Caption:= AddChars('13245',17, '*', zLeft);

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
intercalar digitos luisito2011 Varios 6 04-12-2012 18:38:57
Digitos en un INT lmpadron C++ Builder 9 15-08-2011 16:20:38
ingresar un int de 15 digitos en BD mysql edr_tuc SQL 4 07-02-2008 23:17:36
Ejercicio con Posiciones de dígitos gerupc Varios 19 18-08-2007 18:59:40
Ingresar un núm de 10 digitos... coronado Varios 1 12-10-2006 13:49:18


La franja horaria es GMT +2. Ahora son las 13:42:53.


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