PDA

Ver la Versión Completa : Linea de BITS


MaxiDucoli
04-06-2016, 17:22:08
Buen día, quizás lo que esté preguntando sea algo muy básico y tonto, por que así creo que lo es pero no lo sé hacer y por eso pregunto... :p

Supongamos que tengo una "tira" de Bytes (8 por ejemplo) y quiero escribir es "tira" de Bytes es un TXT, pero con su valor en BITS, o sea que en vez de escribir FF FA F1 A2 33 22 00 FF quiero escribir los 64 BITS que representan esos valores.

Cómo hago eso??????

Muchas gracias, de ante mano ^\||/^\||/^\||/^\||/^\||/^\||/^\||/^\||/^\||/

Saludos!!!!!

ecfisa
04-06-2016, 18:45:23
Hola MaxiDucoli.

Revisa este ejemplo:

...
implementation

function HexToBinary(const HexaValue: string):string;
const
BIN: array [0..15] of string = ('0000','0001','0010','0011','0100','0101',
'0110','0111','1000','1001','1010','1011','1100','1101','1110','1111');
var
i: Integer;
begin
for i := 1 to Length(HexaValue) do
if not (UpCase(HexaValue[i]) in ['0'..'9','A'..'F']) then
raise Exception.Create('Número hexadecimal inválido');

for i := Length(HexaValue) downto 1 do
Result := BIN[StrToInt('$' + UpCase(HexaValue[i]))] + Result;
end;

procedure SaveToFile(Hexa: string; const aFileName: TFileName);
var
TS: TStrings;
begin
Hexa := StringReplace(Hexa, ' ', '', [rfReplaceAll]);
TS := TStringList.Create;
try
TS.Text := HexToBinary(Hexa);
TS.SaveToFile(aFileName);
finally
TS.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
FileName: TFileName;
Hex: string;
begin
Hex := 'FF FA F1 a2 33 22 00 FF';
FileName := ExtractFilePath(Application.ExeName) + 'binary.txt';
SaveToFile(Hex, FileName);
end;


Saludos :)