Delphi调用WinAPI 字符及字符串函数(14): CharToOem、OemToChar

CharToOemBuff、OemToCharBuff 与 CharToOem、OemToChar 的区别只是前者可以指 定要转换的字符数.unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
type
 TForm1 = class(TForm)
  Button1: TButton;
  Button2: TButton;
  Button3: TButton;
  Button4: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  procedure Button4Click(Sender: TObject);
  procedure Button3Click(Sender: TObject);
 end;
var

 Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);var
 Buf: PWideChar;
 AnsiBuf: array[0..255] of AnsiChar;
begin
 Buf := '万一的 Delphi 博客';
 CharToOem(Buf, AnsiBuf);
 ShowMessage(string(AnsiBuf)); {万一的 Delphi 博客}
 FillChar(AnsiBuf, Length(AnsiBuf), #0);
 CharToOemBuff(Buf, AnsiBuf, 6);
 ShowMessage(string(AnsiBuf)); {万一的 De}
end;
procedure TForm1.Button2Click(Sender: TObject);var
 str: string;
 p: PAnsiChar;
begin
 str := '万一的 Delphi 博客';
 p := GetMemory(256);
 CharToOem(PChar(str), p);
 ShowMessage(string(p)); {万一的 Delphi 博客}
 FreeMemory(p);
 p := GetMemory(256);
 CharToOemBuff(PChar(str), p, 6);
 ShowMessage(string(p)); {万一的 De}
 FreeMemory(p);
end;
procedure TForm1.Button3Click(Sender: TObject);var
 AnsiBuf: PAnsiChar;
 Buf: array[0..255] of Char;
begin
 AnsiBuf := '万一的 Delphi 博客';
 OemToChar(AnsiBuf, buf);
 ShowMessage(string(Buf)); {万一的 Delphi 博客}
 FillChar(Buf, Length(Buf), #0);
 OemToCharBuff(AnsiBuf, buf, 6);
 ShowMessage(string(Buf)); {万一的}
end;
procedure TForm1.Button4Click(Sender: TObject);var
 AnsiStr: AnsiString;
 p: PChar;
begin
 AnsiStr := '万一的 Delphi 博客';
 p := StrAlloc(256);
 OemToChar(PAnsiChar(AnsiStr), p);
 ShowMessage(string(p)); {万一的 Delphi 博客}
 StrDispose(p);
 p := StrAlloc(256);
 OemToCharBuff(PAnsiChar(AnsiStr), p, 6);
 ShowMessage(string(p)); {万一的}
 StrDispose(p);
end;
end.

时间: 2024-11-02 01:39:43

Delphi调用WinAPI 字符及字符串函数(14): CharToOem、OemToChar的相关文章

Delphi调用WinAPI 字符及字符串函数(1)

CharLower - 字符或字符串转小写 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5:

Delphi调用WinAPI 字符及字符串函数(3)

CharUpper - 字符或字符串转大写 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5:

Delphi调用WinAPI 字符及字符串函数(11)

lstrcpyn - 复制字符串, 同时指定要复制的长度 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1

Delphi调用WinAPI 字符及字符串函数(10)

lstrcpy - 复制字符串 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: T

Delphi调用WinAPI 字符及字符串函数(9)

lstrcat - 合并字符串 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure Butt

Delphi调用WinAPI 字符及字符串函数(4)

CharLowerBuff - 把缓冲区中指定数目的字符转大写 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton

Delphi调用WinAPI 字符及字符串函数(13)

lstrcmp.lstrcmpi - 对比串 lstrcmp 区分大小写; lstrcmpi 不区分大小写. 返回值: -1.0.1, 其中 0 表示相 同. unit Unit1;interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Butto

Delphi调用WinAPI 字符及字符串函数(12): lstrlen

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Se

Delphi调用WinAPI 字符及字符串函数(2)

CharLowerBuff - 把缓冲区中指定数目的字符转小写 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton