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 ...
随机推荐
- Chrome开发小技巧--浏览器控制台现写并运行js代码--snippets
想简单等运行一段js代码,以前可能会新建一个html 里面包含script标签,或者引入一个js,然后chrome浏览器打开.这样很麻烦. 想再console控制台写,也不方便,换行处理麻烦. 基于在 ...
- Linux_自制系统服务启动脚本
目录 目录 前言 Case语句 Apache 启动脚本 Postfix service 启停脚本 前言 在Linux的某些系统服务中,需要自己定制启动服务的脚本.通常会使用Cash语句来实现. Cas ...
- 实验吧 Web的WriteUp
每次看别人的Writeup都有一种感觉,为什么有了WriteUp我还是不会,每次都打击自己的积极性,所以自己尝试写一篇每个萌新都能看懂的Writeup. 0x01 天下武功唯快不破 题目提示 : 看看 ...
- mariadb(四)连接查询,视图,事物,索引,外键
一.连接查询 1)进入自己创建的zz数据库 2)创建学生表: create table students ( id int unsigned not null auto_increment prima ...
- sourcetree for mac 使用
1.sourceTree clone 仓库 打开sourceTree, 点击 新仓库(1) -> 从url克隆(2), 如下图 如下图所示, 粘贴源url路径, 自动补全或者手动选择目标路径和名 ...
- Python判断端口连通性
#!/usr/bin/env python # -*- coding: utf-8 -*- import socket,sys def MySQL_Connet(MySQL_ip): MySQL_so ...
- 03 - Jmeter用户自定义变量CSV参数化以及断言的设置
设置断言 咱们还是先看一个图吧,由下图可以看出接口是请求成功了,但是请求数量比较少,还是比较方便看的,但是jmeter既然是压测工具,那么肯定不会发这么点儿请求的,如果请求数量比较庞大的话,我们仅仅凭 ...
- mysql: "Warning: Using a password on the command line interface can be insecure." 解决方法
错误重现: 命令行或者shell脚本中执行以下命令,如果您当前服务器mysql版本是大于5.6的,则会出现警告:Warning: Using a password on the command lin ...
- MySQL错误信息语言设置为英文
MySQL错误信息语言设置为英文 安装的wamp环境中,mysql的错误提示信息默认不是英语(大概是法语) 这里说下改为英语的过程 第一步 找到以下文件夹,确保里面可以看到各种"国际方言&q ...
- from、includes、indexOf
from.includes.indexOf:https://blog.csdn.net/j59580/article/details/53897630?utm_source=blogxgwz1 语法 ...