Difference between revisions of "convert charset for console/de"

From Free Pascal wiki
Jump to navigationJump to search
m
m
Line 23: Line 23:
 
   function funAnsiZuOEM(strUebergabe: string): string;
 
   function funAnsiZuOEM(strUebergabe: string): string;
 
   begin
 
   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;
 
     strUebergabe := strUebergabe + #0;
 
     CharToOEM(PChar(strUebergabe), @strUebergabe[1]);
 
     CharToOEM(PChar(strUebergabe), @strUebergabe[1]);

Revision as of 14:03, 16 March 2014

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.



--Olaf 10:37, 15 February 2014 (CET)