新手提问:怎样提取?(30分)

  • 主题发起人 主题发起人 Aland
  • 开始时间 开始时间
A

Aland

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一字符串:“123 您们好!”。
^ ^ ^
数字 空格字符数固定 字符串
var
x:Integer;
y:String[50];
请问:如何将“123”赋与X,“您们好!”赋与Y?
 
var
i:integer;
s:string;
begin
i:=pos(s,'空格字符');
x:=copy(s,1,i-1);
y:=copy(s,i+1,length(s));
end;
 
var i, j, k:integer;
x:integer;
Y:string[254];
s:string;
begin
{将s前面的数字赋给x}
val(s, x, i);

{判断s是否完全由数字组成}
if i<>0 then
{不完全由数字组成, 复制非数字部分}
{255的意思是复制到串尾, 用trim去头尾空格}
y:=trim(copy(s, i, 255));
 
sorry,应该如下:
var
i:integer;
s:string;
begin
i:=pos('空格字符',s);
x:=trim(copy(s,1,i-1));
y:=trim(copy(s,i+1,length(s)));
end;
 
Sorry, 上面的程序有些问题 *^_^*
下面这个是好的:
var i, j, k:integer;
x:integer;
Y:string[254];
s:string;
begin
s:='123 你们好!';

{将s前面的数字赋给x}
val(s, x, i);

{判断s是否完全由数字组成}
if i<>0 then
{不完全由数字组成, 复制非数字部分}
{255的意思是复制到串尾, 用trim去头尾空格}
y:=trim(copy(s, i, 255));
end;

 
var
i:integer;
begin
i:=pos(s,' ');
x:=copy(s,1,i-1);
Delete(S,1,i)
y:=TrimLeft(S);
end;
 
我同意IKONW的说法,因为,这个小程序可以解决所有这种问题
IKNOW的功底很深我万分崇敬.
 
var i:integer;
s:string;
begin
s:='123 您们好!';
i:=pos(' ',s);

x:=StrToInt(trim(copy(s,1,i-1)));//这里应该转化成Integer;
y:=trim(copy(s,i+1,length(s)));
end;
 
var
i:integer;
begin
i:=pos(s,' ');
if i=1
then
//前面没有数字,请处理出错情况;
x:=StrToInt(copy(s,1,i-1));
y:=Trim(Copy(s,i,Length(s));
end;

另外
 
用pos找到特定字符串的位置
用copy截取字符串
用trim删除空字符
用delete删除指定字符
inttostr
strtoint 用来字符串与数值之间转换
 
多谢各位大侠的热情、无私的帮助。:-)
 
后退
顶部