DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: huoying_you
今日帖子: 4
在线用户: 18
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 licai (LC) ★☆☆☆☆ -
普通会员
2003/10/16 16:13:00
标题:
Delphi处理中文的问题 浏览:2357
加入我的收藏
楼主: 此程序有三个控件:Edit1、Button1和Memo1。
代码如下:
procedure Form1.Button1.Click(Sender:Tobject);
var
  index:integer;
begin
  with Edit1 do
    for index:=0 to Length(Edit1.Text) do
        Memo1.Lines.Add(Text[index]);
end;
运行后在Edit1中输入英文,如"My Delphi",单击Button1后,Memo1的显示为:
M
y

D
e
........
可是如果输中文的话,如“我爱德尔非”,单击Button1后,Memo1里的内容是每行一个空格,请问这是什么原因,有办法解决吗?,谢谢!
----------------------------------------------
秋风清,秋月明
落叶聚还散,
寒鸦栖复惊。
相知相见知何日,
此时此夜难为情。
作者:
男 catanx (catanx) ★☆☆☆☆ -
盒子活跃会员
2003/10/16 17:07:28
1楼: 原因:中文站两个字符
procedure TForm1.Button1Click(Sender: TObject);
var
  index:integer;
begin
  with Edit1 do
    for index:=0 to Length(Edit1.Text) do
        if (index mod 2 <>0) then
           Memo1.Lines.Add(Text[index]+Text[index+1]);

end;

----------------------------------------------
我常逛的一个电影站,写写程序看看电影,不要太累了,会死人的:)
www.ddvan.com
很有特色哦,自己发觉吧。
作者:
男 licai (LC) ★☆☆☆☆ -
普通会员
2003/10/16 17:27:20
2楼: 非常感谢,可以讲讲mod是什么运算吗?
----------------------------------------------
秋风清,秋月明
落叶聚还散,
寒鸦栖复惊。
相知相见知何日,
此时此夜难为情。
作者:
女 cyyq (Jan) ★☆☆☆☆ -
普通会员
2003/10/16 21:33:37
3楼: mod是求余或叫求模运算符
----------------------------------------------
-
作者:
男 12521052 (混世生) ★☆☆☆☆ -
盒子活跃会员
2003/10/16 22:47:24
4楼: to licai
 5 mod 2 = 2,就是5除以2的餘數

to catanx:
 如果我的TEXT中是'C漢字'你這段程序應該只會顯示一個'C'吧。呵呵,是不是應該想想別的辦法。我正在想。還有誰有辦法啊。
----------------------------------------------
——混世生
作者:
男 12521052 (混世生) ★☆☆☆☆ -
盒子活跃会员
2003/10/16 23:08:02
5楼: 我發現字母和其它字是以128爲分界的。
 所以應該這樣寫:

procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;                                   //循環用
  s : shortstring;                               //輸出字符串,可不用
begin
  i := 1;                                        //將i至爲1
  while i <= length(edit1.text) do begin         //循環到edit1.text的末尾
    if ord(edit1.text[i]) > 127 then begin       //ASC值大於127,認爲是漢字
      s := edit1.text[i] + edit1.text[i + 1];    //拼起這個漢字
      i := i + 1;                                //跳一位
    end else
      s := edit1.text[i];                        //是字符
    memo1.Lines.Append(s);                       //添加到Momo
    i := i + 1;                                  //循環
  end                                            //While i< ...
end;
----------------------------------------------
——混世生
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/10/17 8:21:22
6楼: good!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 catanx (catanx) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 10:16:25
7楼: oh yes well
----------------------------------------------
我常逛的一个电影站,写写程序看看电影,不要太累了,会死人的:)
www.ddvan.com
很有特色哦,自己发觉吧。
作者:
男 licai (LC) ★☆☆☆☆ -
普通会员
2003/10/17 16:14:43
8楼: 谢谢,不过我还有个问题,谁知道如何设置中文的SelStart和SelLength呢,要精确设置。
----------------------------------------------
秋风清,秋月明
落叶聚还散,
寒鸦栖复惊。
相知相见知何日,
此时此夜难为情。
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/10/17 17:29:50
9楼: pos('a','abca')是1
pos('你','我你他')是2 
都可作为 selstart sellength可由你的要查找的字符决定啊!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 licai (LC) ★☆☆☆☆ -
普通会员
2003/10/17 20:23:11
10楼: 不是中文占两个字符吗,怎么第二个也是2呢?
----------------------------------------------
秋风清,秋月明
落叶聚还散,
寒鸦栖复惊。
相知相见知何日,
此时此夜难为情。
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/10/17 21:52:42
11楼: 偶写错了,我的问题都没人解决 ,关是我帮别人了
小弟交不了作业?
小弟这学期的课程设计是《电子公章》
http://www.cltess.com/html/sign.htm
但第一个模块就遇到了难题:如何将WORD
通过olevarinat 无缝链接到DELPHI的FORM
窗体中?谢谢!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 licai (LC) ★☆☆☆☆ -
普通会员
2003/10/18 19:16:21
12楼: 我什么时候才能看懂那文章呀!!!!!!!!!!!!!!!!!!!!
----------------------------------------------
秋风清,秋月明
落叶聚还散,
寒鸦栖复惊。
相知相见知何日,
此时此夜难为情。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行179.6875毫秒 RSS