删除数据字节(20分)

  • 主题发起人 主题发起人 ldelphi
  • 开始时间 开始时间
L

ldelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我有以下一 Combobox ,它的 items如下<中间有空格>

姓名简称 (Ctrl+C)
姓名 (Ctrl+X)
QQ (Ctrl+Q)
Email (Ctrl+E)
移动电话 (Ctrl+Y)
家庭电话 (Ctrl+J)
宿舍电话 (Ctrl+S)

我想在读取 Combobox 的任一个值时,得到的是下面的信息(其中之一)

姓名简称
姓名
QQ
Email
移动电话
家庭电话
宿舍电话

也就是说,要在不改变 Combobox 的 item 的情况下,把后面的9个字符(包括空格)删掉,怎样实现?
 
查找空格,然后取它前面的字符不就可以吗?
procedure TForm1.Button1Click(Sender: TObject);
var
l_pos: Integer;
l_Str: String;
begin
l_pos := pos(' ', Combobox1.Items[0]);
if l_pos > 0 then
l_Str := Copy(Combobox1.Items[0], 1, l_pos - 1)
else
l_Str := Combobox1.Items[0];
ShowMessage(l_Str);
end;
 
你的方法很好
不过如果,我的 Combobox 中的 items 有几项没有空格(如下),也就是说:一定要把每个 item 的最后八个字节

去掉,再 trim .应该怎样实现?

姓名简称(Ctrl+C)
姓名 (Ctrl+X)
QQ (Ctrl+Q)
Email (Ctrl+E)
移动电话 (Ctrl+Y)
家庭电话 (Ctrl+J)
宿舍电话(Ctrl+S)
 
str:=combobox1.items.text;
str:=copy(str,1,length(str)-8);
str:=trim(str);
 
变通一下啦,如果没有找到空格,就查找“(”嘛,得到后使用Trim去除空格
procedure TForm1.Button1Click(Sender: TObject);
var
l_pos: Integer;
l_Str: String;
begin
l_pos := pos('(', Combobox1.Items[0]);
if l_pos > 0 then
l_Str := Trim(Copy(Combobox1.Items[0], 1, l_pos - 1))
else
l_Str := Trim(Combobox1.Items[0]);
ShowMessage(l_Str);
end;
 
多人接受答案了。
 
后退
顶部