Aplikacja konsolowa

0

1.Mam aplikację konsolową napisaną w delphi ale nie ma polskich znaków, gdy pisze writeln('żółw'); wychodzi tekst zaszyfrowany :-8 . Jak sprawić aby w konsoli wyświetlały się polskie znaki ?

2.Jak zakończyć pracę aplikacji konsolowej napisanej w delphi ? Tylko nie mówcie że Close; :-D
Dzięki za ewentualną pomoc

0

Ad. 2: Halt

PS. Jakby to znalazł jakiś znawca ASMa: czy w Delphi zadziała święte :) "mov ax, 4C00h; int 21h"?

0

Ad.1.

Cóż - pisanie w writeln polskich znaków faktycznie daje krzaki, ale można użyć polecenia chr - zwraca znak o podanym numerze (z tablicy ASCII) np:
writeln(chr(190),chr(162),chr(136),'w');
da Ci w efekcie na ekranie napis żółw

Trochę kombinowania z tym jest, ale po jakimś czasie sobie przyswoisz numery polskich znaków.

0

PS. Jakby to znalazł jakiś znawca ASMa: czy w Delphi zadziała święte :) "mov ax, 4C00h; int 21h"?

Nie testowałem, ale Windows zależnie od wersji:

  • nie pozwala na używanie przerwań
  • przerwania raczej nie zadziałają

W sumie to bardziej jest kwestia trybu chronionego - ale nigdy się w to nie zagłębiałem :-P.

0

PS. Jakby to znalazł jakiś znawca ASMa: czy w Delphi zadziała święte :) "mov ax, 4C00h; int 21h"?

Zadziała wywalając:
"Exception EAccessViolation in module Project2.exe at 00007FD7.
Access violation at address 00407FD7 in module 'Project2.exe'. Read of address FFFFFFFF."
:)
Ale jakby nie patrzeć zakończy działanie :)

0

Ad.1.

Cóż - pisanie w writeln polskich znaków faktycznie daje krzaki, ale można użyć polecenia chr - zwraca znak o podanym numerze (z tablicy ASCII) np:
writeln(chr(190),chr(162),chr(136),'w');
da Ci w efekcie na ekranie napis żółw

Trochę kombinowania z tym jest, ale po jakimś czasie sobie przyswoisz numery polskich znaków.

Można też napisac procedurke do zamieniania tekstu na kody ASCII. I nie trzeba się będzie uczyć na pamięć.

0

Do pytania nr 1:
<delphi>
program CharOem;

{$APPTYPE CONSOLE}

uses
Windows;

const
Elephant: String = 'Słoń';
begin
CharToOem(PChar(Elephant), PChar(Elephant)); // Znormalizowanie tekstu
Write(Elephant);
Readln;
end.
<delphi>

Program wydrukuje na konsoli bezkrzaczkowy tekst 'Słoń'.

1 użytkowników online, w tym zalogowanych: 0, gości: 1