对如下字符串(其中姓名可能为2到4个字符):
“姓名★”
如何只将★前的姓名截取出来?
“姓名★”
如何只将★前的姓名截取出来?
解决方案 »
- 大家帮忙看看这个查询语句哪里不对?
- ComboBox编译的问题
- 调用Outlook控件发邮件时,会跳出一个让你确认的窗口,怎么才能不让它出来?
- 急!!!!!难!!!!!gridehlib控件的列checkbox只支持boolean数据类型,哪位大侠帮忙改成支持integer类型啊
- clientdataset.delta临时表的意思?
- 两个客户端程序调用相同的应用服务器上的函数,为什么结果不一样?
- access视图中的nz函数在DELPHI中不认,isnull在access中又不认,怎么办呀??????
- 昨在SQL7中手工建了几个表,且追加了几条记录,今天为何表都没了?
- (昨天的问题,仍未解决)一个奇怪的问题(也许是我太菜)...高手一定请进来看一下!能用的分都用了
- 学习笔记
- 如何取一个表中的前20条记录?
- 我想在A1、A2、B1、B2中随机抽出一个,该怎么做,用哪个函数?
namestr: ansistring;
pos: int;
begin
namestr := '姓名*'
namestr := copy(namestr,1,pos(namestr,'*')-1)
end
sValue: WideString;
sName: WideString;
iPos: Integer;
begin
sValue := '姓名★';
sName := sValue;
iPos := Pos('★', sValue);
if iPos > 0 then
sName := Copy(sValue, 1, iPos - 1);
ShowMessage(sName);
end;
i:integer;
s:string;
begin
for i to Length(Str)-1 do begin
if Str[i]='*' then
s:=str[i];
end;
end;上面不能编译 你需要自己修改 如果需要更详细的代码可以到网络中查 JVL或者JCL中都有相关的代码 VCL中也有 只是你没发现
一个一个找出汉字(先确定汉字编码的范围),不是汉字就结束。
function GetSubstr(s_str, d_str: string; po: integer): string; //s_str大字符串,d_str分隔符,po位置
var
i, j, k: integer;
begin
Result := '';
if po < 1 then
exit;
s_str := trim(s_str) + d_str;
i := 0;
while 1 = 1 do
begin
if Pos(d_str, s_str) > 0 then
begin
j := Pos(d_str, s_str) + length(d_str);
k := length(s_str) - (j - 1);
i := i + 1;
if i = po then
begin
j := Pos(d_str, s_str);
Result := copy(s_str, 1, j - 1);
break;
end;
s_str := copy(s_str, j, k);
end
else
break;
end;
end;一般结合下面的函数用,也是我写的,有哪位高手有时间把我这两个函数优化一下,谢谢啦。//得到substr在str中出现的次数
function GetAppearTimes(Substr, Str: string): integer;
var
i: integer;
lstr: string;
begin
lstr := Str;
i := 0;
while Pos(Substr, lstr) > 0 do
begin
i := i + 1;
lstr := copy(lstr, Pos(Substr, lstr) + length(Substr), length(lstr) - length(Substr));
end;
Result := i;
end;