Title: Convert binary to octal
Use BinToOct function to convert number in binary format to octal format.
function BinToOct(BinStr: string): string;
var
i: Integer;
OctPart: Real;
LastPart, OctStr: string;
Error: Boolean;
begin
Error:=False;
OctStr:='';
case Length(BinStr) mod 3 of
1: BinStr:='00'+BinStr;
2: BinStr:='0'+BinStr;
end;
while Length(BinStr)0 do
begin
LastPart:=Copy(BinStr, Length(BinStr)-2, 3);
Delete(BinStr, Length(BinStr)-2, 3);
OctPart:=0;
for i:=1 to 3 do
if not (LastPart[i] in ['0', '1']) then
begin
ShowMessage('This is not binary number');
Error:=True;
Break;
end
else
OctPart:=OctPart+StrToInt(LastPart[i])*Power(2, 3-i);
OctStr:=OctStr+FloatToStr(OctPart);
end;
Result:='';
if ErrorTrue then
begin
for i:=1 to Length(OctStr) do
Result:=Result+OctStr[Length(OctStr)-i+1];
while (Result[1]='0') and (Length(Result)1) do
Delete(Result, 1, 1);
end;
end;