一行一行的读,if =end then ....

解决方案 »

  1.   

    我不知道具体代码怎么写谁能给出完整代码,功能就象flashoicq软件中读取贴图文本文件一样,每次从文件中读一个贴图,按一下键读下一个;或者象聊天圣手那样的在listbox中点击一下既选中整个贴图(以空格为界)
      

  2.   

    txtstr : string;txtstr := '';
    for i:=0 to memo1.lines.count - 1 do
    begin
      tmptxt := memo1.lines[i];
      if tmptxt <> 'end;' then
        txtstr := txtstr + tmptxt;
    end;
      

  3.   

    另外我希望在memo中显示的是分行的
    aaaaaaaaaa
    bbbbbbbbbb
    cccccccccc
    而不是aaaaaaaaaabbbbbbbbbbcccccccccc
      

  4.   

    Funcation doCut:TStringList;
    Var
      i:Integer;  
      Tmp,DescString:String;
    begin
      doCut:=TStringList.Create; 
      DescString:='';
      For i:=0 to Memo1.Lines.Count-1 do
      begin
        Tmp:=Trim(Memo1.Lines.Strings[i])
        if UpperCase(Tmp)='END;' then
        begin
            doCut.add:=DescString
            DescString:='';
        end
        else
        begin
          if DescString='' then
            DescString:=Tmp
          else
            DescString:=DescString+Tmp;   
        end; 
      end;
    end;
      

  5.   

    简单的代码,没有考虑错误情况,仅供参考。如下:
    -----------------------------------------------------------
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      myStrings : TStringList;
      endPointer : integer;implementation{$R *.DFM}
    procedure AddMemoLines(iStrings : TStrings; StartLine, EndLine :Integer);
    var
       i:integer;
    begin
       form1.Memo1.lines.clear;
       for i:=startline to endline do
         form1.memo1.Lines.Add(iStrings[i]);
    end;
    function FindEnd(iStrings : TStrings; startline :integer): integer;
    var
        i:integer;
    begin
        for i:=startLine to iStrings.count-1 do
          begin
            if AnsiCompareText(myStrings.Strings[i],'END;')=0 Then
               begin
                  endPointer:=i;
                  break;
               end;
          end;
    end;      
    procedure TForm1.FormCreate(Sender: TObject);
    var
        i:integer;
    begin
        myStrings:=TStringList.Create;
        myStrings.LoadFromFile('aaa.txt');
        endPointer:=0;
        findend(myStrings,0);    AddMemoLines(myStrings,0,endPointer-1);        
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
         lastpointer:integer;
         i:integer;
    begin
          lastPointer:=endPointer+1;
          findend(myStrings,lastPointer);      AddMemoLines(mystrings,lastPointer,endPointer-1);
    end;end.
      

  6.   

    谢谢ChinaDelphiFan的答复问题,已经解决。
      

  7.   

    Function TForm1.doCut:TStringList;
    Var
      i:Integer;
      Tmp,DescString:String;
    begin
      doCut:=TStringList.Create;
      DescString:='';
      For i:=0 to Memo1.Lines.Count-1 do
      begin
        Tmp:=Trim(Memo1.Lines.Strings[i]);
        if UpperCase(Tmp)='END;' then
        begin
            doCut.add(DescString);
            DescString:='';
        end
        else
        begin
          if DescString='' then
            DescString:=Tmp
          else
            DescString:=DescString+Tmp;
        end;
      end;
    end;