通过 line/index 从备忘录中复制文本
Copying text from a Memo by line/index
我想知道是否有办法从备忘录的特定行复制文本。例如,我想将我的备忘录第3行的内容存储到一个字符串中,然后对该字符串进行一些操作并将其复制到另一个memo/edit.
我已经尝试了一些变体,但 none 有效:
str_temp = Memo1->Lines[2].Text;
Memo2->Lines->Append(str_temp);
当我从 Lines[0]
询问时,它只是将备忘录中的所有内容复制到字符串中:
str_temp = Memo1->Lines[0].Text;
Memo2->Lines->Append(str_temp);
Lines
属性 是指向 TStrings
对象的 指针 。所以 Memo1->Lines[2].Text
与对 指针算术 执行 (*(Memo1->Lines+2)).Text
相同,这在语法上是有效的,但在逻辑上是错误的,因为它最终会访问无效的内存。而 Memo1->Lines[0].Text
与 (*(Memo1->Lines)).Text
(又名 Memo1->Lines->Text
)相同,这既合法又有效,但不是您想要的结果。
TStrings
有个Strings[]
属性,就是你需要用的,eg:
String str_temp = Memo1->Lines->Strings[2];
或者,TStrings
有一个在内部使用 Strings[]
的 operator[]
,例如:
String str_temp = (*(Memo1->Lines))[2];
我想知道是否有办法从备忘录的特定行复制文本。例如,我想将我的备忘录第3行的内容存储到一个字符串中,然后对该字符串进行一些操作并将其复制到另一个memo/edit.
我已经尝试了一些变体,但 none 有效:
str_temp = Memo1->Lines[2].Text;
Memo2->Lines->Append(str_temp);
当我从 Lines[0]
询问时,它只是将备忘录中的所有内容复制到字符串中:
str_temp = Memo1->Lines[0].Text;
Memo2->Lines->Append(str_temp);
Lines
属性 是指向 TStrings
对象的 指针 。所以 Memo1->Lines[2].Text
与对 指针算术 执行 (*(Memo1->Lines+2)).Text
相同,这在语法上是有效的,但在逻辑上是错误的,因为它最终会访问无效的内存。而 Memo1->Lines[0].Text
与 (*(Memo1->Lines)).Text
(又名 Memo1->Lines->Text
)相同,这既合法又有效,但不是您想要的结果。
TStrings
有个Strings[]
属性,就是你需要用的,eg:
String str_temp = Memo1->Lines->Strings[2];
或者,TStrings
有一个在内部使用 Strings[]
的 operator[]
,例如:
String str_temp = (*(Memo1->Lines))[2];