convert charset for console/de

From Free Pascal wiki
Revision as of 02:20, 12 February 2020 by Trev (talk | contribs) (Fixed syntax highlighting; deleted category already in page template)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Deutsch (de)

Zurück zur Konsolenseite.

Den Zeichensatz für die Ausgabe an der Konsole anpassen

Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.
Falls Ihr Konsolenprogramm unter Windows Ansi-Text mit Umlauten und Sonderzeichen korrekt ausgeben soll, dann müssen Sie den Ansi-Text in den OEM-Zeichensatz konvertieren.
Unter Linux (Ubuntu) ist eine Konvertierung des Zeichensatzes nicht notwendig.

program project1;

{$mode objfpc}{$H+}
{$IMPLICITEXCEPTIONS OFF}

uses
  Windows;

var
  strText: string;

  // Diese Funktion übersetzt den Inhalt eines Ansistrings
  // in den Zeichensatz der Konsole
  function funAnsiZuOEM(strUebergabe: string): string;
  begin
    // Ab Lazarus 1.2.0 muss der folgende Absatz eingefügt werden:
    strUebergabe := Utf8ToAnsi(strUebergabe);
    
    // Bis Lazarus 1.0.14 genügte dieser Teil:
    strUebergabe := strUebergabe + #0;
    CharToOEM(PChar(strUebergabe), @strUebergabe[1]);
    Delete(strUebergabe, Length(strUebergabe), 1);
    Result := strUebergabe;
  end;

begin

  strText := 'Rosé und Tölt';
  writeln('Ausgabe: ' + funAnsiZuOEM(strText));

end.