Форум: "Потрепаться";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизПррверьте пожалуйста есть ли ошибки Найти похожие ветки
← →
Hamertime (2005-10-25 18:30) [0]ниже написан исходник для расшифровки двоичного кода проверьте плиз правильно или нет
function GetCharFromBinary(const s : string) : char;
var i : integer;
a : byte;
begin
a := 0;
for i := 1 to length(s) do
if s[i] = "1" then a := a + Binary[i];
Result := chr(a)
end;
function GetTextFromBinary (const s : string) : string;
var i : integer;
begin
if length(s) mod 8 > 0 then Exception.Create("Eaeoa ia ?a!");
SetLength(Result, length(s) div 8);
for i := 1 to length(Result) do
Result[i] := GetCharFromBinary(Copy(s,(i-1) shl 3 + 1,8))
end;
вот вроде так будет не могли проверить правильно или нет а то нету делфи
← →
pasha_golub © (2005-10-25 18:43) [1]
> if length(s) mod 8 > 0
Я бы тут впереди нулей добавлял сам.
> Binary[i];
А это простите, что за структура такая?
← →
Defunct © (2005-10-25 19:17) [2]> Hamertime
Намудрили Вы тут что-то:
if s[i] = "1" then a := a + Binary[i];
i - индекс символа в строке, какое отношение он имеет к некой структуре Binary?
Полагаю должно было быть хотя бы так:
if S[i] = "1" then
a := (a shl 1) + 1
else
if S[i] = "0" then
a := (a shl 1)
else
raise EConvertError.Create( "Wrong binary data at pos: "+IntToStr(i) );
опять же нет проверки, при переводе из бинарной строки в Char:
function GetCharFromBinary(const s : string) : char;
...
if Length(S) > 8 then
raise ....
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.045 c