如果你要只是简单的取回车符的话; 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; 您可以取出它的回车符和换行符
Tstrings[I] 这儿包括它的回车符和换行符;
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;
这是我给另一个人写的取每行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;
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;
您可以取出它的回车符和换行符
我现在要的是把 memo 按每行分割
我需要一个string类型的变量储存每行的信息包括换行
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;
您可以取出它的回车符和换行符
这儿包括它的回车符和换行符;
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;
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;
str := strs[i]; 不能取出回车符呀
这儿包括它的回车符和换行符;
///////////////////////////
但是我测试的时候并没有回车符
你这样看可不可以;
I := Length(Str[0]);
Pchar1 := Pchar(strs.Strings[I]);//
Pchar2 := Pchar(strs.Strings[I - 1 ]);
你在keydown or keyPress 中进行没试看一看;
可是
str := Tstrings[I];
str中只有该行的文字,却没有回车符号。
换行你也看不到啊,它是#10,你只能感觉到它的存在啊;
比如说:
string := ...+ #13 +...;
I := Length(Str[0]); 就不对了
我第一行比如是 5 个字符串, i 结果等于 5 ,而不是6或7(回车符和换行符)
我现在明白了,其实
每个memo.lines 中结尾肯定有回车和换行,虽然我取不出来,但是可以在他后面加上 #10 和 #13 如果是系统自动换行则没有回车符,可能lines[0]在memo中看见的是两行、三行,最后才有回车换行符。我说的对吗?
I := Length(Str[0]); //str要是Tstrings才行的;
也就是说应该是这样的;
I := Length(Memo1.Lines[0]);
你说的是对的,但是,每一行都有的;