var
  Str : TStrings ;
begin
  Str := TStrings.Create;
  Str := Memo1.Lines;
end;应该是这样的,它有换行符和回车符

解决方案 »

  1.   

    如果你要只是简单的取回车符的话;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Str : TStrings ;
      I : Integer;
    begin
      Str := TStrings.Create;
      Str := Memo1.Lines;
      I := Length(Str[0]);
      Showmessage(Str.Strings[I]);
      Showmessage(Str.Strings[I-1]);
    end;
    您可以取出它的回车符和换行符
      

  2.   

    ihihonline(小小->充电中……) 
    我现在要的是把 memo 按每行分割 
    我需要一个string类型的变量储存每行的信息包括换行
      

  3.   

    如果你要只是简单的取回车符的话;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Str : TStrings ;
      I : Integer;
    begin
      Str := TStrings.Create;
      Str := Memo1.Lines;
      I := Length(Str[0]);
      Showmessage(Str.Strings[I]);
      Showmessage(Str.Strings[I-1]);
    end;
    您可以取出它的回车符和换行符
      

  4.   

    Tstrings[I]
    这儿包括它的回车符和换行符;
      

  5.   

    var
      I : Integer;
      Str : String;
      Strs : Tstrings;
    begin
      Strs := Tstrings.Create;
      Strs := Memo1.Lines;
      for I := 0 to Strs.Count - 1 do
      begin
        Str := Strs[I];
        // TODO ……,对Str进行操作,以便下次仍用它,用数组也可以,动态的;
      end
    end;
      

  6.   

    这是我给另一个人写的取每行text的代码,在EDIT1中输入行数,就可以取出该行STRING,给分呀:)richedit第一行可以 表示为richedit.lines[0]var i,s,m:integer;
    begin
    s:=0;
    m:=strtoint(edit1.text);  //edit1输入行
    for i:=0 to m-1 do
    s:= (Length(richedit1.Lines[i]))+s;
    s:=s+m*2;
    richedit1.SetFocus;
    richedit1.SelStart:=s;
    richedit1.SelLength:=Length(richedit1.Lines[m]);end;
      

  7.   

    我正在测试,可是好象
    str := strs[i]; 不能取出回车符呀
      

  8.   

    Tstrings[I]
    这儿包括它的回车符和换行符;
    ///////////////////////////
    但是我测试的时候并没有回车符
      

  9.   

    不可能取不出来,只是没有看到啊;
    你这样看可不可以;
    I := Length(Str[0]);
    Pchar1 := Pchar(strs.Strings[I]);//
    Pchar2 := Pchar(strs.Strings[I - 1 ]);
    你在keydown or keyPress 中进行没试看一看;
      

  10.   

    分我一定给,
    可是 
    str := Tstrings[I];
    str中只有该行的文字,却没有回车符号。
      

  11.   

    回车符号看不到啊,它是#13;
    换行你也看不到啊,它是#10,你只能感觉到它的存在啊;
    比如说:
    string := ...+ #13 +...;
      

  12.   

    关键是现在
    I := Length(Str[0]);  就不对了
     
    我第一行比如是 5 个字符串, i 结果等于 5 ,而不是6或7(回车符和换行符)
      

  13.   

    非常感谢ihihonline(小小->充电中……) 
    我现在明白了,其实
    每个memo.lines 中结尾肯定有回车和换行,虽然我取不出来,但是可以在他后面加上 #10 和 #13 如果是系统自动换行则没有回车符,可能lines[0]在memo中看见的是两行、三行,最后才有回车换行符。我说的对吗?
      

  14.   

    我帮小小回答了,肯定是对的;
    I := Length(Str[0]);  //str要是Tstrings才行的;
    也就是说应该是这样的;
    I := Length(Memo1.Lines[0]);
    你说的是对的,但是,每一行都有的;