第一次写函数,很多问题不懂,请指教。
实现的功能类似Copy函数,不同的是我需要从第一个字符开始复制到某个字符结束。
例如:字符串:‘120元/月’,我只复制‘元’之前的数字。我写了下面的函数
Procedure TForm1.CopyTill(S,Y:String; 1:Integer);
Var
S,Y,Str1:String;
begin
S:='100Ôª';
Y:='Ôª';
Str1:=Copy(S,1,1);
if Str1='Y' then begin
Str2:='';
exit;
end else begin
Str1:=Copy(S,1,2);
if Str1='Y' then begin
Str2:=Copy(S,1,1);
exit;
end else begin
Str1:=Copy(S,1,3);
if Str1='Y' then begin
Str2:=Copy(S,1,2);
exit;
end else begin
Str1:=Copy(S,1,4);
if Str1='Y' then begin
Str2:=Copy(S,1,3);
exit;
end;
end;
end;
end;
end;不知道哪里有什么问题,如何返回函数中的返回值给主函数,知道的人帮帮我。
另外Procedure TForm1.CopyTill(S,Y:String; 1:Integer);这里我也不知道这样写对不对
谁知道请告诉我一下,谢谢了。
实现的功能类似Copy函数,不同的是我需要从第一个字符开始复制到某个字符结束。
例如:字符串:‘120元/月’,我只复制‘元’之前的数字。我写了下面的函数
Procedure TForm1.CopyTill(S,Y:String; 1:Integer);
Var
S,Y,Str1:String;
begin
S:='100Ôª';
Y:='Ôª';
Str1:=Copy(S,1,1);
if Str1='Y' then begin
Str2:='';
exit;
end else begin
Str1:=Copy(S,1,2);
if Str1='Y' then begin
Str2:=Copy(S,1,1);
exit;
end else begin
Str1:=Copy(S,1,3);
if Str1='Y' then begin
Str2:=Copy(S,1,2);
exit;
end else begin
Str1:=Copy(S,1,4);
if Str1='Y' then begin
Str2:=Copy(S,1,3);
exit;
end;
end;
end;
end;
end;不知道哪里有什么问题,如何返回函数中的返回值给主函数,知道的人帮帮我。
另外Procedure TForm1.CopyTill(S,Y:String; 1:Integer);这里我也不知道这样写对不对
谁知道请告诉我一下,谢谢了。
var
iPos: integer;
begin
iPos:=Pos(Y, S); //查找子串在源数据串中的位置
if iPos>0 then //找到
result:=Copy(S, 1, iPos-1)
else
result:='';
end;顺便问一下,你传入参数中的1:integer是什么意思?
{-----------------------------------------------------------------------------
Unit Name: CopyTill
制作者: XXX
目的: 实现的功能类似Copy函数
变量说明:sStr:原字符串;sPos:要拷贝的位置
Note:数据的返回最好用Var;函数的返回最好定义成Integer;因为有的机器不支持字符串的返回
-------------------------------------------------------------------------------}
function TForm1.CopyTill(sStr,sPos: String; var sResult: String): Integer;
var
iPos: integer;
begin
result := -1;
iPos := Pos(sStr, sPos); //查找子串在源数据串中的位置
if iPos > 0 then
sResult := Copt(sStr,1,iPos - 1); //返回需要的内容
result := 0;
end;