我现在要实现的功能非常简单,我在C#里面实现过。但是转到delphi很多函数不太清楚。所以请各位高手帮个忙。<a1>测试1<a2>
<a1>测试2<a2>
<a1>测试3<a2>
我现在要提取<a1>到<a2>之间的字符串。返回以数组的形式返回{'测试1','测试2','测试3'}。

解决方案 »

  1.   

    很多字符串处理函数都可以比如 Copy ,Pos
      

  2.   

    兄弟,我要的是具体代码。或者可以将C#的函数给我转换到delphi里面也行的。String.IndexOf
    String.Remove
    String.Substring
    就这个几个函数。
      

  3.   


    假设 D:\test.txt 内容如下 :
    <a1>测试1<a2>
    <a1>测试2<a2>
    <a1>测试3<a2>
    Type 
      type 
        TSelfArr    :   array   of   String;  
    function readFileToArray(): TSelfArr ;
    var
    sl : TStringList ;
    i  : Integer ;
    tmpStr : String ;
    begin

    sl := TStringList.create();
    sl.LoadFromFile('D:\test.txt') ;

    for(i :=0 to sl.Count-1) do
    begin
    tmpStr := sl[i] ;
    tmpStr := StringReplace(tmpStr, '<a1>', [rfRelpaceAll, rfIgnoreCase]) ;
    tmpStr := StringReplace(tmpStr, '<a2>', [rfRelpaceAll, rfIgnoreCase]) ;
    SetLength(Result, Length(Result)+1) ;
    Result[Length(Result)-1] := tmpStr ;
    end;end; 机器没有Delphi ,在Notepad++中写的,自己调试一下 ,希望能对你有帮组 ;
      

  4.   

    少写了个参数:
    把这两句
             tmpStr := StringReplace(tmpStr, '<a1>', [rfRelpaceAll, rfIgnoreCase]) ;
            tmpStr := StringReplace(tmpStr, '<a2>', [rfRelpaceAll, rfIgnoreCase]) ;
    换成:
             tmpStr := StringReplace(tmpStr, '<a1>', '',  [rfRelpaceAll, rfIgnoreCase]) ;
            tmpStr := StringReplace(tmpStr, '<a2>', '',  [rfRelpaceAll, rfIgnoreCase]) ;