dephi中一个Form我通过url访问远程页面,在Form的richedit框中显示的是该页面的代码。现在这个代码是两条书的信息:@@@《dephi程序设计》@@电子出版社   
                    @@@《asp设计》@@机械出版社
这个@是定义的包头,我怎么对包头进行解包?就是显示出来的时候要把包头去掉,这是两行书的信息,我不要包头,只要名称和出版社就可以了,怎么解决?请各位高手指教!三个@表示一行,再遇到下三个@的时候表示换行,怎么判断?

解决方案 »

  1.   

    如果需要在Delphi内对某一字符串进行分隔(字符串有固定的分隔标记),一般情况下好像都是自己写一个函数来实现。其实在Delphi内有一个写好的函数,只是不在常用的单元内。它在xmlutil单元内,名称是Split0。
    function Split0(Str: string; const substr: string): TStringList;这是原形,第一个参数是待分隔的字符串,第二个是分隔标记,返回值是StringList。
    需要注意的是,在调用此函数后,你得去释放它生成的StringList,否则可以会造成内存泄漏。
    例:
    procedure SetASResult(Value: String);
    var slTemp1:TStringList;
    begin
      MyASResult.Clear;
      slTemp1:=Split0(Value,'|');
      FASResult.AddStrings(slTemp1);
      FreeAndNil(slTemp1);//<---------slTemp1不需要你自己创建Create,但用完后需要你来FreeAndNil。
    end;
      

  2.   

    最原始的方法是用Pos+Copy+循环来实现。