Delphi新手求助字符串操作
本人新学Delphi,对于Pascal的字符串操作函数太不熟悉了.请帮助截取一下字符串如"国药计字[1994]57号"我要取出'国药计字','1994'和'57'这3个子...
本人新学Delphi,对于Pascal的字符串操作函数太不熟悉了.
请帮助截取一下字符串 如 "国药计字[1994]57号"
我要取出 '国药计字','1994'和'57' 这3个子串.
请给个公式!!
唉!只是不习惯Pascal的Copy和Pos这种没营养的函数名字.
看电影到: 小小影视站 http://www.xxysz.com 展开
请帮助截取一下字符串 如 "国药计字[1994]57号"
我要取出 '国药计字','1994'和'57' 这3个子串.
请给个公式!!
唉!只是不习惯Pascal的Copy和Pos这种没营养的函数名字.
看电影到: 小小影视站 http://www.xxysz.com 展开
2个回答
展开全部
var p:integer;
s,sTmp,sWord,sYear,sNum:string;
begin
s:='国药计字[1994]57号';
p:=pos('[',s);
if p>0 then
begin
sWord:=Copy(s,1,p-1);
sTmp:=Copy(s,p+1,Length(s)-p);
end
else exit;
p:=pos(']',sTmp);
if p>0 then
begin
sYear:=copy(sTmp,1,p-1);
sTmp:=Copy(sTmp,p+1,Length(sTmp)-p);
end
else exit;
p:=pos('号',sTmp);
if p>0 then
begin
sNum:=copy(sTmp,1,p-1);
end;
end;
s,sTmp,sWord,sYear,sNum:string;
begin
s:='国药计字[1994]57号';
p:=pos('[',s);
if p>0 then
begin
sWord:=Copy(s,1,p-1);
sTmp:=Copy(s,p+1,Length(s)-p);
end
else exit;
p:=pos(']',sTmp);
if p>0 then
begin
sYear:=copy(sTmp,1,p-1);
sTmp:=Copy(sTmp,p+1,Length(sTmp)-p);
end
else exit;
p:=pos('号',sTmp);
if p>0 then
begin
sNum:=copy(sTmp,1,p-1);
end;
end;
展开全部
[Delphi] function ExtractStrings(Separators: TSysCharSet; WhiteSpace: TSysCharSet; Content: PAnsiChar; Strings: TStrings): Integer;
Separators 参数指定一组分割符,所有的子串都是用它们分割的。但是成对的引号内的分割符会被忽略(参看下面的例子)。
WhiteSpace 参数指定每个子串开头被忽略的字符s。
Content 参数就是被分割的“源”串了。
Strings 参数用于接收分割后的各个子串。它的原有内容不会被清空。别忘了Create哦。
另外,EctractStrings不会把(忽略WhiteSpaces后的)空串加入到Strings中。
下面是一个例子:
//分割字符串 ExtractStrings
var
s: String;
List: TStringList;
begin
s := 'about: #delphi; #pascal, programming';
List := TStringList.Create;
ExtractStrings([';',',',':'],['#',' '],PChar(s),List);
//第一个参数是分隔符; 第二个参数是开头被忽略的字符
ShowMessage(List.Text); //about
//delphi
//pascal
//programming
List.Free;
end;
Separators 参数指定一组分割符,所有的子串都是用它们分割的。但是成对的引号内的分割符会被忽略(参看下面的例子)。
WhiteSpace 参数指定每个子串开头被忽略的字符s。
Content 参数就是被分割的“源”串了。
Strings 参数用于接收分割后的各个子串。它的原有内容不会被清空。别忘了Create哦。
另外,EctractStrings不会把(忽略WhiteSpaces后的)空串加入到Strings中。
下面是一个例子:
//分割字符串 ExtractStrings
var
s: String;
List: TStringList;
begin
s := 'about: #delphi; #pascal, programming';
List := TStringList.Create;
ExtractStrings([';',',',':'],['#',' '],PChar(s),List);
//第一个参数是分隔符; 第二个参数是开头被忽略的字符
ShowMessage(List.Text); //about
//delphi
//pascal
//programming
List.Free;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询