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 20-11-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 86
Poder: 11
elmago00 Va por buen camino
Gracias Nelson y ecfisa resolvieron gran parte de mi problema, ahora solo me queda una pregunta,

como puedo separar la cadena del Tedit en gruppo de 2.

por ejemplo :256312456892254 quisiera que quedara en string.

var1: 25
var2: 63

etc

e intentado pero solo puedo separarlo en array de char, pero los necesito en string, y debido que el TEdit no puedo usar identificador o separador, parar separar el string, se me dificulta y tampoco puedo especificar un valor, por que el usuario debe insertarlo.

si tienen tiempo para ayudarme con esto ultimo, se los agradecería mucho.

mil gracias por ayudarme siempre.

Última edición por elmago00 fecha: 20-11-2014 a las 19:31:58.
Responder Con Cita
  #2  
Antiguo 20-11-2014
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
elmago00,

Cita:
Empezado por elmago00
...como puedo separar la cadena del TEdit en grupos de 2...


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)
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
   SL : TStringList;

begin

   SL := TStringList.Create;

   for i := 1 to Length(Edit1.Text) do
   begin
      if (i mod 2) = 0 then
         SL.Add(Copy(Edit1.Text,i-1,2));
   end;

   if (Length(Edit1.Text) mod 2) <> 0 then
      SL.Add(Copy(Edit1.Text,Length(Edit1.Text),1));

   ListBox1.Clear;

   for i := 0 to SL.Count - 1 do
      ListBox1.Items.Add(SL.Strings[i]);

   SL.Free;

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite dividir un número en grupos de 2, como se puede ver en la siguiente imagen:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 20-11-2014 a las 20:58:36.
Responder Con Cita
  #3  
Antiguo 20-11-2014
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
Cita:
Empezado por elmago00 Ver Mensaje
como puedo separar la cadena del Tedit en gruppo de 2.

por ejemplo :256312456892254 quisiera que quedara en string.

var1: 25
var2: 63

etc
En ese caso creo que te conviene hacerlo a mano...
Código Delphi [-]
...
var
  s1,s2,s3,s4,s5,s6,s7,s8: string;


procedure TForm1.btnSepararClick(Sender: TObject);
begin
  with Edit1 do
  begin
    s1:= Copy(Text,1,2);
    s2:= Copy(Text,3,2);
    s3:= Copy(Text,5,2);
    s4:= Copy(Text,7,2);
    s5:= Copy(Text,9,2);
    s6:= Copy(Text,11,2);
    s7:= Copy(Text,13,2);
    s8:= Copy(Text,15,2);
  end;
  Edit2.Text:= Format('%s %s %s %s %s %s %s %s',[s1,s2,s3,s4,s5,s6,s7,s8]);
end;



Aunque logicamente, al ser un total de 15 caracteres, no es posible almacenar dos caracteres por variable ...

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 20-11-2014 a las 20:58:35.
Responder Con Cita
  #4  
Antiguo 21-11-2014
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 el mago00.

Para ampliar opciones, otro modo de asignar las duplas a las variables:
Código Delphi [-]
...
procedure HexToVars(HexStr: string; v: array of Pointer);
var
  c,i: Integer;
begin
  i:= Low(v);
  c:= 1;
  while i <= High(v) do
  begin
    string(v[i]^):= Copy(HexStr, c, 2);
    Inc(c, 2);
    Inc(i);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  v1,v2,v3,v4,v5,v6,v7,v8: string;
begin
  HexToVars('256312456892254', [@v1,@v2,@v3,@v4,@v5,@v6,@v7,@v8]);
  ShowMessage(Format('%s %s %s %s %s %s %s %s',[v1,v2,v3,v4,v5,v6,v7,v8]));
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 21-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Muy ingenioso.
Responder Con Cita
  #6  
Antiguo 22-11-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 86
Poder: 11
elmago00 Va por buen camino
muchas gracias el problema esta resuelto.
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
Convertir Binario a Hexadecimal. JoseFco ASM y Microcontroladores 21 30-10-2008 22:43:31
convertir int o char a hexadecimal. bactering C++ Builder 2 05-10-2008 21:18:45
¿Cómo convertir de word a integer? bluegene Varios 16 19-03-2007 22:31:18
String Hexadecimal '000CB2' a Cardinal o Integer onlytk Varios 2 06-11-2005 17:24:38
Como Convertir un dato Integer ó Float a String en FireBird???? AGAG4 Firebird e Interbase 8 04-12-2004 02:59:47


La franja horaria es GMT +2. Ahora son las 10:03:52.


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