Znaki specjalne w konsoli Windows 7

0

Witam,
Ostatnimi czasy postanowiłem napisać program konsolowy z ładną ramką wokół menu głównego złożoną ze znaków specjalnych skopiowanych z Windows'owskiej Tablicy Znaków (np.: ═║╔╗╚╝). Jednakowoż efekt nie pokrywał się z tym, czego się spodziewałem:
56f2cd1dc0.png.
Podobny problem mam także z polskimi znakami.

W jaki sposób mógłbym to poprawić/naprawić?

0

A ustawiłeś właściwe kodowanie?

0

A jaka strona kodowa byłaby odpowiednia?

1

Pod Edytorem FileManagera FAR z pluginem Draw Lines można sobie rysować ładne "tabelki" z dosowych ASCII. Tylko plik *.pp należy zapisać z kodowaniem 852 - OEM, a nie 1250 - ANSI. Ewentualnie przed rysowaniem przełaczyć się na inne kodowanie klawiszem F8.

Na przykład bez problemu poniższy kod się kompiluje i pokazuje co trzeba. Tylko nie wiem jak to przy kopiowaniu parserem wyjdzie. Najlepiej sobie użyć tego pluginu Draw Lines. Przełączyć F2 na "grubsze ramki" i z wciśniętym Shiftem narysować, to co potrzeba.

program test;
 
{$MODE DELPHI}
 
uses
  Windows;
 
function OEM(AnsiText : string) : string;
begin
  Result := '';
  if AnsiText <> '' then
  begin
    SetLength(Result, Length(AnsiText));
    AnsiToOEM(PChar(AnsiText), PChar(Result));
  end;
end;
 
begin                     
  Writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
  Writeln('ş USE YOUR BRAIN AND GOOGLE BEFORE ASK ON ANY FORUM! ş');
  Writeln('ČÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍĽ');
  Readln;  
end.

Pod innym kodowaniem, można spróbować konwertować tą funkcją OEM.

EDIT: po zapisie bez zmian kodowania wklejając "żywcem" z parsera kodów tego forum - też jest jest ok przy wyświetlaniu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.