Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie funktioniert Ansi2OEM mit Unicode (https://www.delphipraxis.net/143068-wie-funktioniert-ansi2oem-mit-unicode.html)

heri 9. Nov 2009 08:40


Wie funktioniert Ansi2OEM mit Unicode
 
Wie funktioniert denn Ansi2OEM mit Unicode?

Delphi-Quellcode:
function Ansi2OEM(Const AString: String): String;
var
  lResult: String;
begin
  SetLength(lResult, Length(AString));
  {$IFDEF WIN32} 
  CharToOEM(PChar(AString), PChar(lResult)); {32Bit} 
  {$ELSE} 
  AnsiToOEM(PChar(@AString[1]), PChar(@lResult[1])); {16Bit} 
  {$ENDIF} 
  Result := lResult;
end;
ich kriegs nicht hin?

Uwe Raabe 9. Nov 2009 08:53

Re: Wie funktioniert Ansi2OEM mit Unicode
 
Probier das mal:

Delphi-Quellcode:
function Ansi2OEM(Const AString: String): AnsiString;
var
  lResult: AnsiString;
begin
  SetLength(lResult, Length(AString));
  {$IFDEF WIN32}
  CharToOEM(PChar(AString), PAnsiChar(lResult)); {32Bit}
  {$ELSE}
  AnsiToOEM(PChar(@AString[1]), PChar(@lResult[1])); {16Bit}
  {$ENDIF}
  Result := lResult;
end;

heri 9. Nov 2009 08:57

[done] Wie funktioniert Ansi2OEM mit Unicode
 
habs "logischerweise" so gemacht:

Delphi-Quellcode:
  function AnsiToConCP( AString: String ): AnsiString;
  var
    lResult: AnsiString;
  Begin

    SetLength( lResult, length( AString ) );

    {$IFDEF UNICODE}

    CharToOEM( PWideChar( AString ), PAnsiChar( lResult ) );

    {$ELSE}

    CharToOEM( PChar( AString ), PChar( lResult ) );

    {$ENDIF}

    Result := lResult;

  End;

himitsu 9. Nov 2009 09:08

Re: Wie funktioniert Ansi2OEM mit Unicode
 
Wohl eher {$IFDEF UNICODE} ... Unicode hat nix mit 16 oder 32 Bit zu tun.

Delphi-Quellcode:
function AnsiToConCP( AString: String ): AnsiString;
  Begin
    SetLength( Result, length( AString ) );
    CharToOEM( PChar( AString ), PAnsiChar( Result ) );
  End;

function AnsiToConCP( AString: String ): AnsiString;
  Begin
    SetLength( Result, length( AString ) );
    {$IFDEF UNICODE}
      CharToOEM( PChar( AString ), PAnsiChar( Result ) );
    {$ELSE}
      AnsiToOEM( PChar( AString ), PAnsiChar( Result ) );
    {$ENDIF}
  End;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz