В Блокноте вы можете открыть любой файл, и он отобразит необработанные данные внутри.
Я хотел бы сделать это в TMemo, но никак не мог понять, как это сделать.
Мне удалось найти этот код здесь.
Я преобразовал его в функцию и немного изменил для своих целей:
function OpenBinaryFile(var Data; Count: Cardinal): string;
var
Line: string[80];
i: Cardinal;
P: PAnsiChar;
nStr: string[4];
SL: TStringList;
const
posStart = 1;
binStart = 7;
ascStart = 57;
begin
P := @Data;
Line := '';
SL := TStringList.Create;
try
for i := 0 to Count - 1 do
begin
if (i mod 16) = 0 then
begin
if Length(Line) > 0 then
SL.Add(Trim(Line));
FillChar(Line, SizeOf(Line), ' ');
Line[0] := Chr(72);
end;
if P[i] >= ' ' then
Line[i mod 16 + ascStart] := P[i]
else
Line[i mod 16 + ascStart] := '.';
end;
SL.Add(Trim(Line));
Result := SL.Text;
finally
SL.Free;
end;
end;
Он работает, но отображает только фиксированное количество символов в строке, как здесь:
Что мне нужно изменить, чтобы он заполнил все заметку так же, как Блокнот?