Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda Suma y Binarios (https://www.clubdelphi.com/foros/showthread.php?t=85829)

Taylor01 12-05-2014 19:34:11

Ayuda Suma y Binarios
 
Hola
Acá os saluda un novato, que esta empezando en el mundo de delphi y los agradecería mucho si me ayudan.

bueno Tengo que crear un form con 2 Edit y un botón, que al teclear ejm 'hola mundo' el programa lo convierta en código ASCII y lo sume y la suma lo convierta en binario siendo este el resultado a mostrar ejm:

104 h
111 o
108 l
97 a
+ 32
109 m
117 u
110 n
100 d
111 o
---------
999 -> 1111100111-> mostrar como resultado el binario

leyendo sobre el uso de string y buscando ejemplos por el internet,
he usado el Ord para traducirlo al Ascii quedo asi:

Código:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
s , ascii : string;
i,sum,binari: integer;
begin
s:=(edit1.Text);
ascii:='';
begin
 for i := 1 to length(s) do
  ascii:=ascii+' '+inttostr(ord(s[i]));
  edit2.Text:= ascii;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;

end.

El problema que tengo es que no logro hacer la suma y la conversión en binario, la verdad no se que hacer, Podrían darme una mano en esta parte.
Muchas Gracias!

ecfisa 12-05-2014 20:28:41

Hola Taylor01, bienvenido a Club Delphi :).

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i,sum: Integer;
begin
  sum:= 0;
  for i:= 1 to Length(Edit1.Text) do sum:= sum + Ord(Edit1.Text[i]);
  Edit2.Text:= '';
  for i:= 8 {(*)} downto 0 do
    Edit2.Text:= Edit2.Text + Chr(Ord('0') + Integer((sum shr i and 1) <> 0));
end;
(*) o 16,24,... si la suma de los valores ASCII es tan grande como para no poder ser representada con ocho bits.

Saludos :)

Taylor01 12-05-2014 21:58:35

Hola ecfisa, eso era lo que estaba buscando mucha gracias por la ayuda y pido disculpa por no haber leído las regla del foro.

ecfisa 12-05-2014 22:05:57

Hola Taylor01.

No hay por que disculparse, no has infringido ninguna norma, tu mensaje es claro y correcto. Pero como te mencioné es costumbre recomendar la lectura a los que ingresan a los foros.

Por otro lado la guía de estilo tiene por fín último que todos podamos recibir mejores respuestas y encontrar fácilmente nuestras dudas en las búsquedas.

Saludos :)


La franja horaria es GMT +2. Ahora son las 02:18:04.

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