Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.062 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Wie kann man TEncoding vergleichen?

  Alt 29. Aug 2017, 14:16
Korrektur (da man bissel aufpassen muss mit der Vererbung) und gleich mit Konsolentestprogramm:

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils,
  Winapi.Windows;

var
  I: Integer;

function EncodingToStr(const AEncoding: TEncoding): string;
begin
  Result := '';
  if AEncoding is TUTF8Encoding then // <-- easy
    Result := 'UTF8'
  else if AEncoding is TUTF7Encoding then // <-- easy
    Result := 'UTF7'
  else if AEncoding is TBigEndianUnicodeEncoding then
    Result := 'BigEndianUnicode'
  else if AEncoding is TUnicodeEncoding then // <-- easy
    Result := 'Unicode'
  else if AEncoding is TMBCSEncoding then // <-- schwieriger, musste noch die CodePage auswerten
  begin
    if AEncoding.CodePage = Winapi.Windows.GetACP then
      Result := 'ANSI'
    else
      Result := 'ASCII';
  end;
end;

begin
  try
    Writeln(EncodingToStr(TEncoding.ANSI));
    Writeln(EncodingToStr(TEncoding.ASCII));
    Writeln(EncodingToStr(TEncoding.BigEndianUnicode));
    Writeln(EncodingToStr(TEncoding.Default));
    Writeln(EncodingToStr(TEncoding.Unicode));
    Writeln(EncodingToStr(TEncoding.UTF7));
    Writeln(EncodingToStr(TEncoding.UTF8));

    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
  Mit Zitat antworten Zitat