delphi按字节长度分割字符串函数(转)
此字符串分割函数用delphi编写,可以适应字符串中存在双字节字符和单字节字符。
function TricheditEfm.SplitString(source:string;Sleng:Integer):TStringlist;stdcall;
//字符串分割函数 ,按字符串长度分割
var copycount,i:Integer; //每个汉字占用两个字节长度
copystr:string;
stringlist:Tstringlist;
begin
Stringlist:=Tstringlist.Create;
while length(source)>Sleng do
begin
copystr:=copy(source,,Sleng); //以Sleng为长度截取字符串
if (ord(bytetype(copystr[Sleng],))=) then //如果最后一个字节是汉字
begin
copycount:=;
for i:= to Sleng- do
if not (ord(bytetype(copystr[i],))=) then INC(copycount);
if copycount mod <> then //有奇数个单字节字符,则说明是汉字的前半串
begin
stringlist.Add(Copy(Source,,Sleng+));
source:=copy(source,Sleng+,length(source)-Sleng-);
end
else //有偶数个单字节字符,则说明是汉字的后半串
begin
stringlist.Add(Copy(Source,,Sleng));
source:=copy(source,Sleng+,length(source)-Sleng);
end;
end
else //如果最后一个字节是单字节字符
begin
stringlist.Add(Copy(Source,,Sleng));
source:=copy(source,Sleng+,length(source)-Sleng);
end;
end;
result:=Stringlist;
Stringlist.Add(source);
end;
delphi按字节长度分割字符串函数(转)的更多相关文章
- C#按指定长度分割字符串
C#按指定长度分割字符串 这几天学习分析声音的波形数据,接收到的是十六进制的数据,需要将数据转换成十进制再绘图,这个过程涉及到字符串的分割,正好可以促进自己对C#相关知识的学习.说到分割字符串,我 ...
- js截取指定字节长度的字符串
默认的截取字符串都是根据字符长度或位置截取的,典型的两个方法是substr和substring. 这样导致的问题是截取同样长度的字符串时,多字节字符(汉字等)和单字节字符(半角英文字母.半角数字)占的 ...
- Sql Server分割字符串函数
-- Description: 分割字符串函数 -- SELECT * FROM dbo.Split('a,b,c,d,e,f,g',',') -- ========================= ...
- C#按字节长度截取字符串
产生这个问题的原因是将Substring方法将双字节的汉字当成一个字节的字符(UCS2字符)处理了,导致长度变短. 两个扩展方法按字节长度截取字符串 /// <summary> /// 根 ...
- C#利用substring按指定长度分割字符串
这几天学习分析声音的波形数据,接收到的是十六进制的数据,需要将数据转换成十进制再绘图,这个过程涉及到字符串的分割,正好可以促进自己对C#相关知识的学习.说到分割字符串,我首先想到的是Split,但根据 ...
- C++ split分割字符串函数
将字符串绑定到输入流istringstream,然后使用getline的第三个参数,自定义使用什么符号进行分割就可以了. #include <iostream> #include < ...
- Delphi分割字符串函数Split源码
function TStringHelper.Split(const Separator: array of string; Count: Integer; Options: TStringSplit ...
- C语言分割字符串函数strtok
在编程过程中,有时需要对字符串进行分割.而有效使用这些字符串分隔函数将会给我们带来很多的便利. 下面我将在MSDN中学到的strtok函数做如下翻译. strtok :在一个字符串查找下一个符号 ch ...
- python 按照固定长度分割字符串
>>> import re >>> string = '123456789abcdefg' >>> re.findall(r'.{3}', str ...
随机推荐
- oracle中not in 和 in的代替用法
-- not in 的替代写法select col from table1 where col not in(select col from table2); select col,table2.co ...
- Thread -线程的两种创建方式
package cn.learn.thread.Thread; /* 实现Runnable必须重写run()方法,一般推荐用Runnable实现 */ public class RunnableImp ...
- Spring cloud学习--Zuul01
Zuul解决的问题 作为系统的统一入口,屏蔽了系统内部各个微服务的细节 可以与微服务治理框架结合,实现自动化的服务实例维护以及负载均衡的路由转发 实现接口权限校验与微服务业务逻辑的解耦 搭建Zuul服 ...
- 微信小程序(一)--微信小程序的介绍
一.微信小程序简介 小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用.也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题.应用将无 ...
- linux配置mysql数据库远程连接失败
今天配置linux下mysql数据库可以远程访问的问题,百度这方面的资料有很多,但是方法都一样,都试过了却未能解决,记录一下 第一步:在/etc/mysql/my.cnf下找到bind-address ...
- 01 spring循环依赖
作者:Mythsman原文:https://blog.mythsman.com/post/5d838c7c2db8a452e9b7082c/转载自:猿天地原文来自:https://mp.weixin. ...
- TCL自动化之SSH交互式
目前ssh工具很多,但是能够轻松运用到自动化脚本中,可以轻松适配任何环境,满足ssh交互式登录的tcl工具包很少 下面是个人在tcl自动化过程中比较满意的一款自动化脚本 通过使用管道方式分装plink ...
- web.config增加组和调用
一,在web.config中的configuration节点下我们可以添加自己的配置,如下: <TestSectionGroup> <TestSection> <add ...
- sudo在清理内存的时候报错
运行下面语句清缓存时,报Permission denied错误:-bash: /proc/sys/vm/drop_caches: Permission denied sudo echo 1 > ...
- Xcode 及 iOS 常用宏和常量
Xcode Xcode 工程设置支持 bash 脚本及其语法,如 $(PROJECT_DIR)$(PROJECT_DIR) PROJECT_DIR 代表当前工程的绝对路径,所以 $(PROJECT_D ...