首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

帮忙!

2012-04-11 
求助各位高手帮忙!!!我们的短信服务器要求发送短信的内容超过了移动公司规定的70字限制,请问怎么能在给定

求助各位高手帮忙!!!
我们的短信服务器要求发送短信的内容超过了移动公司规定的70字限制,请问怎么能在给定的字符串中截取。(我截取字符串的时候经常会出现乱码的现象,字符串中包括字符和汉字!!!)

[解决办法]
如果是限定了每次发送的字节数的话, 可以写个函数来获取指定字节数的子串:

function String_Copy(sString: String; iStart:Integer; var iLen:Integer): String;
var
iLoop : Integer;
bHead : Boolean;
bTail : Boolean;
begin
if iStart + iLen - 1 > = Length(sString) then
iLen := Length(sString) - iStart + 1
else begin
bHead := False;
bTail := False;
for iLoop := iStart to iStart + iLen -1 do
begin
if bHead and not bTail then
bTail := True
else
if sString[iLoop] > = #160 then
begin
bHead := True;
bTail := False;
end;
end;
if bHead and not bTail then Dec(iLen);
end;
Result := Copy(sString, iStart, iLen);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s, t : String;
i, j : Integer;
begin
s := '12345字符串ABCDE ';

i := 1;
j := 6;
t := String_Copy(s, i, j); //返回 '12345 '
ShowMessage(t);
i := i + j;
j := 3;
t := String_Copy(s, i, j); //返回 '字 '
ShowMessage(t);
i := i + j;
j := 5;
t := String_Copy(s, i, j); //返回 '符串A '
ShowMessage(t);
end;

热点排行