回 帖 发 新 帖 刷新版面

主题:获取字符串问题 急在线等

现有字符串
#01#333......
我想获取
string stype:=01
string msg:=333....
代码怎么实现
哪位大虾帮忙一下 感谢万分!!!!!

回复列表 (共5个回复)

沙发

function SplitEx(const Str {需要拆分的文章}, Delimiters {拆分关键字,回车.?!等}: string): TStringList;
var
  ss: WideString;
  i, St: integer;
  function IsDelimiter(const Delimiters, c: string): Boolean;
  begin //判断是否为拆分关键字
    result := StrScan(PChar(Delimiters), c[1]) <> nil;
  end;
begin
  Result := TStringList.Create;
  with Result do
  begin
    Clear; Sorted := True; Duplicates := dupIgnore;
  end;
  if Length(Str) < 1 then exit;
  ss := Str; //双字符支持,纯英文可以去掉
  St := -1;
  for i := 1 to Length(ss) do
    if IsDelimiter(Delimiters, ss[i]) then
      if St <> -1 then
      begin
        Result.Add(Trim(Copy(ss, St, i - St)));
        St := -1;
      end
      else
        if St = -1 then St := i;
  if St <> -1 then Result.Add(Copy(ss, St, Length(Str)));
end;

板凳

var
  boxA,boxB,boxC:array[0..127]of char;
  s:array[1..2]of array[0..127]of char;
  temptext:array[0..127]of char
begin
  strpcopy(temptext,'#01#333......');
  strpcopy(boxA,trim(temptext));
    for i:=1 to 2 do
      begin
        strpcopy(boxB,strscan(boxA,'#'));
        strpcopy(boxC,leftstr(boxA,length(trim(boxA))-length(trim(boxB))));
        strpcopy(boxA,trim(boxB));
        strpcopy(s[i],trim(boxC));
      end;
  string stype:=s[1]
  string msg:=s[2]

3 楼

有点难度哦 具体的问题这样的
从服务器端获取信息  Msg:=socket.receivetext
receivetext内容格式为#01#..........或者#02#...........
现在要分离出01, ......或者02,.......
怎么实现哦 最好简单点的

4 楼

socket.receivetext的内容!晕

5 楼

汗 比方你收到的字符串是S 那么S[1]就是#01或者#02
用个if 就分开了哎

我来回复

您尚未登录,请登录后再回复。点此登录或注册