`
hjy2099
  • 浏览: 261479 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Delphi 对汉字字符串的截取问题

阅读更多

在Delphi中,用Length来取字符长度时,会将汉字当成两个字节来计算,Copy把汉字当成两个来处理,可能截取半个汉字,那我们如何知道是否取的是汉字呢?是否把一个汉字取完整了呢?

其实,可以用ByteType对取出来的字符进行判断是一个单字符还是汉字的一部分!
mbLeadByte: 汉字的第一个字节
mbTrailByte: 汉字的第二个字节
mbSingleByte: 单个的字符,不是中文字符。
如果Copy出来的是汉字的第一个字节,就再多(或少)Copy一个,凑成完整的汉字。
如下例:

function GetText(strtxt:string;iLen:integer):string;
begin
//先判断要截取的字符串最后一个字节的类型
//如果为汉字的第一个字节则减(加)一位
if ByteType(strtxt,iLen) = mbLeadByte then
iLen := iLen - 1;

result := copy(strtxt,1,iLen) + "...";
end;

分享到:
评论

相关推荐

    delphi 实现截取字符串中中文+英文混合截取

    在Delphi编程环境中,处理中文和英文混合的字符串截取是一项常见的任务,特别是在涉及到文本处理、数据解析或者用户界面展示时。由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就...

    高效中英文字符串截取方法

    ### 高效中英文字符串截取方法 #### 知识点概述 本文将详细介绍一种用于高效截取中英文混合字符串的方法。该方法适用于处理大量数据(例如10万条记录),能够在极短的时间内(例如1秒)完成所需的操作。这种方法...

    DELPHI 字符串处理单元

    它包含了对中文字符串的特殊处理,如简繁转换,以及经过优化的字符串操作,以满足对性能有高要求的应用场景。通过研究StrFuncs.pas和FastStringFuncs.pas这两个源代码文件,开发者可以学习到如何在Delphi中有效地...

    delphi字符串截取超出加

    copy(string,integer1,integer2):string; 返回str从integer1开始的integer2个字符 copy('a你bc',2,3)='你b'; Copy(WideString('a你bc'), 2,3)='你bc'; WideString(string)把汉字看成一个长度;

    DELPHI 提取汉字首字母或者全拼的程序,带源码

    1. **字符串处理**:DELPHI的`String`类型提供了丰富的字符串操作函数,例如`Copy`用于截取字符串,`Pos`用于查找子字符串位置,这些函数在处理汉字转换时必不可少。 2. **Unicode支持**:DELPHI支持Unicode编码,...

    对全角半角字符串的处理

    ### 对全角半角字符串的处理 在计算机编程与数据处理领域中,全角和半角字符的区别及其转换是一项常见的需求。特别是在东亚语言环境中(如中文、日文、韩文等),这种转换对于文本处理至关重要。 #### 全角与半角...

    delphi获取汉字拼音首字母可含字母数字

    6. **字符串处理**:在获取了所有字符的首字母后,可以使用Delphi的字符串操作函数,如`LowerCase`或`UpperCase`将首字母统一为大写或小写,然后拼接成最终的字符串。 7. **错误处理和性能优化**:在实际应用中,...

    汉字转化成拼音首字母代码delphi xe

    在Delphi编程环境中,开发汉字转化为拼音首字母的程序是一项常见的需求,这主要涉及到文本处理和中文字符编码的理解。在给定的标题“汉字转化成拼音首字母代码Delphi XE”中,我们可以推断这是一个关于如何在Delphi ...

    Delphi判断中英文

    3. **字符串截取**:根据 `Sep1` 的值,使用 `Copy` 函数从 `TmpStr` 中截取从第 1 个字符到第 `Sep1` 个字符的子串,并赋值给 `FMsgStr1`。 #### 四、实践应用场景 在实际开发中,这种判断中英文字符的方法可以...

    php实现中文字符截取防乱码方法汇总

    大家在自己的程序中相信都会... * 支持中文字符串截取 */ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ switch($charset){ case 'utf-8':$char_len=3;break; case 'UTF8':$char_

    中英文字符串翻转函数

    但当涉及到包含多字节字符(如中文字符)的字符串时,情况会变得复杂,因为每个中文字符可能由多个字节表示,而普通的字符串长度计算和遍历方法可能会出现问题。 在【描述】中,我们看到PHP代码片段用于实现翻转中...

    更全的Delphi函数大全.doc

    《更全的Delphi函数大全》是对Delphi编程语言中字符串处理函数的全面汇总,它按照函数的功能划分为31个类别,便于程序员查询和使用。以下是对这些函数的详细说明: 1. 字符串处理函数: - `AdjustLineBreaks(S, ...

    Delphi常用函数PDF版

    Len:Integer):string`** - 分别提取字符串右侧和左侧的指定长度子串,常用于字符串截取和分析。 8. **`Spc(Len:Integer):string`** - 返回由空格组成的指定长度的字符串,可用于文本对齐或填充。 ### 其他功能...

    【Delphi源码】-大小写金额转换

    1. **字符串处理**:Delphi中的字符串类型是AnsiString或UnicodeString,这里会用到字符串的拼接、截取、查找等操作,以便将数字拆分成个、十、百、千等部分,并对应转换成汉字。 2. **数字与字符映射**:需要建立...

    字符转utf8

    汉字等字符有时候在网络传输时候要转成UTF8格式,此资源即实现C++下的转化。

    delphi人民币大小写转换

    - **字符串操作**:利用Delphi提供的字符串处理函数进行字符替换、截取等操作。 - **数学计算**:通过对金额进行简单的数学运算来适应中文大写金额的特殊规则。 - **条件判断**:根据金额的不同范围,采取不同的转换...

    Delphi文本生字提取程序..rar

    字符串处理是处理文本的基础,Delphi提供了丰富的字符串函数,如Pos、Copy、Replace等,用于查找、截取和替换字符串中的字符或子串。正则表达式则是一种强大的文本模式匹配工具,能有效识别和提取特定模式的文本,如...

    delphi 开发经验技巧宝典源码

    0177 截取指定位置的字符串 115 0178 清除字符串中指定的字符 115 0179 如何实现文本的加密与解密 116 0180 提取字符串中指定子字符串后的字符串 117 0181 替换指定的字符串 117 0182 在文本中删除指定的...

Global site tag (gtag.js) - Google Analytics