C# vs Delphi Round 1
■ このスレッドは過去ログ倉庫に格納されています
0323デフォルトの名無しさん
NGNGprogram Dump;
{$APPTYPE CONSOLE}
uses Windows, SysUtils;
function GetAttribute(var F: Text): Word;
var
Info: CONSOLE_SCREEN_BUFFER_INFO;
begin
GetConsoleScreenBufferInfo(TTextRec(F).Handle, Info);
Result := Info.wAttributes
end;
procedure SetAttribute(var F: Text; Attr: Word);
begin
Flush(F);
SetConsoleTextAttribute(TTextRec(F).Handle, Attr)
end;
procedure WriteData(Data: array of Char; Next: Char);
var
I: Integer;
OrdAttr: Word;
begin
for I := Low(Data) to High(Data) do
Write(IntToHex(Ord(Data[I]), 2), ' ');
Write('': (16 - Length(Data)) * 3);
OrdAttr := GetAttribute(Output);
SetAttribute(Output, FOREGROUND_GREEN);
Write(': ');
SetAttribute(Output, OrdAttr);
for I := Low(Data) to High(Data) do
if Data[I] in [#$20..#$7e, #$80..#$fe] then
begin
Write(Data[I]);
if (I = High(Data)) and (Data[I] in LeadBytes) and (Next in [#$20..#$ff]) then
Write(Next)
end
else
begin
OrdAttr := GetAttribute(Output);
SetAttribute(Output, FOREGROUND_RED);
Write('.');
SetAttribute(Output, OrdAttr)
end;
WriteLn
end;
■ このスレッドは過去ログ倉庫に格納されています