请教关于TstringList的问题

firetop818 2005-11-27 12:05:27
请问用TstringList怎么实现下面的功能:
我自定义“程”对应“0001”,“序”对应“0002”,“员”对应“0003”,当在Edit1中输入程序员三个汉字时,Edit2中显示000100020003
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
firetop818 2005-11-27
  • 打赏
  • 举报
回复
谢谢aiirii 结贴
aiirii 2005-11-27
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var sL: TStringList; w: widestring; I: integer;
begin
sL := TStringList.Create;
sL.Add('程=0001');
sL.Add('序=0002');
sL.Add('员=0003');

edit2.Text := '';
w := Edit1.Text;
for i:=1 to Length(w) do
begin
edit2.Text := edit2.Text + sL.Values[w[i]];
end;
FreeAndNil(sL);
end;
firetop818 2005-11-27
  • 打赏
  • 举报
回复
谢谢 liangqingzhi(老之)!
可能我没有说清楚,我的意思是用TstringList实现输入一个汉字,显示一个编码(这个编码是我自己自定义的,可以把他看成是字符串)就象用数据库查表一样,所有汉字属于一个字段,所有编码属于另一个字段,当输入一个汉字,在一个记录中找到汉字时显示其对应的编码一样!
我想进一步问一下,如果把所有中文汉字都自定义为相对应的编码(上面的程序员三个字只是一部分),不知用这种方法的执行的效率如何,也就是说,如果我在Edit1中输入任意的中文汉字,在Edit2中都能显示相对应的编码(就象程对应0001(它是一个字符串)一样)
老之 2005-11-27
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var s:TStringList;
ch,num:string;
i,j,k,n:integer;
begin
s:=TStringList.Create;
n:=3;
s.Add('程');s.Add('序');s.Add('员');
i:=1;Edit2.Text:='';
while i<=Length(Edit1.Text) do
begin
ch:=Copy(Edit1.Text,i,2);
for j:=0 to n-1 do
if ch=s[j] then
begin
num:=IntToStr(j+1);
for k:=Length(num) to 3 do num:='0'+num;
Edit2.Text:=Edit2.Text+num;
break;
end;
i:=i+2;
end;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧