文档章节

字符串转换到指定格式的宽字符 - 回复 "厨师" 的问题

涂孟超
 涂孟超
发布于 2014/09/26 15:30
字数 275
阅读 13
收藏 0
问题来源: http://www.cnblogs.com/del/archive/2008/12/13/1353193.html#1400641

本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Memo1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
  pcw: PWideChar;
  cw: WideChar;
  i: Integer;
begin
  Memo1.Clear;

  str := Edit1.Text;
  pcw := PWideChar(str);

  for i := 0 to StrLen(pcw) - 1 do
  begin
    cw := (pcw+i)^;
    Memo1.Lines.Add(Format('$%.4x', [Ord(cw)]));
    //Memo1.Lines.Add(Format('$%.4x', [Ord(str[i+1])])); {也可以用这句替换上面两行}
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Clear;
  Memo1.Align := alLeft;
  Memo1.ScrollBars := ssVertical;
end;

procedure TForm1.Memo1Click(Sender: TObject);
var
  str: string;
begin
  str := Memo1.Lines[Memo1.CaretPos.Y];
  Text := WideChar(StrToIntDef(str, 0));
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 190
  ClientWidth = 260
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Memo1: TMemo
    Left = 8
    Top = 8
    Width = 89
    Height = 185
    Lines.Strings = (
      'Memo1')
    TabOrder = 0
    OnClick = Memo1Click
  end
  object Button1: TButton
    Left = 136
    Top = 120
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 1
    OnClick = Button1Click
  end
  object Edit1: TEdit
    Left = 95
    Top = 16
    Width = 157
    Height = 21
    TabOrder = 2
    Text = 'Edit1'
  end
end

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/12/13/1354101.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
ANSI和UNICODE字符串处理常用函数

ANSI和UNICODE字符串处理函数 #ifdef UNICODE #define tcscpy wcscpy #else #define tcscpy strcpy #endif 字符串处理函数常用函数对照 使用MultiByteToWideChar函数和WideCharToMultiByte函......

byxdaz
2018/05/30
0
0
控制台程序的中文输出乱码问题,printf,wprintf与setlocale

解决gcc编译时的乱码问题 今天发现用securecrt登陆时,gcc编译出错时会出现乱码,但直接在主机的窗口界面下用Shell编译却没有乱码。查看了一下当时的错误描述,发现它的引号是中文引号,导致...

mickelfeng
2013/07/13
0
0
FW: printf()详解之终极无惑

printf()详解之终极无惑 版权声明:感谢您对博文的关注!校招与社招,有需要内推腾讯的可以QQ(1589276509)or 微信(louislvlv)联系我哈,期待您的加入。 https://blog.csdn.net/K346K346...

SamXIAO
01/05
0
0
漫谈字符集(ascii、gbk及unicode)--跨平台开发绕不过去的一道坎

在一个产品里迭代了三年,碰到最头疼的问题之一就是跨平台开发的字符集转换的问题。至今为止,我以为我懂了,但可能还是错的,希望别人能纠正。 ascii,7位美国国家信息交换标准码,基本能搞...

Jon_Wong
2018/07/03
0
0
Ansi与Unicode及慎用W2A等

Ansi与Unicode简要说明及各自的优缺点 他们是两种字符的编码格式,Ansi=窄字节,Unicode=宽字节,Ansi用char格式表示一个字符,占用一个字节的存储空间,最多表示255个字符, 表示英文还可以...

IMGTN
2012/06/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring学习记录

Java类定义配置 @Configuration //标记为配置类@ComponentScan //标记为扫描当前包及子包所有标记为@Component的类@ComponentScan(basePackageClasses = {接口.class,...}) //标记为扫描当...

CHONGCHEN
今天
1
0
如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
3
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
4
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
4
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部