C++ Builder - 根据其中的某些单词将 Link 复制到字符串
C++ Builder - Copy a Link to a String Based On Certain Words in It
这是我第一次 post 来这里。
我在 Memo
或 TStringList
中有 4 个 link:
http://website.com/text/book&id=20/programming
http://website.com/text/book&id=10/programming
http://website.com/text/book&id=40/programming
http://website.com/text/book&id=30/programming
我想要做的是根据其 "id number"
复制每个 link,如上所示以分隔字符串,而不是基于其
TMemo
或 TStringList
中的索引。
这是因为每个link的id号总是每次或动态变化(它是一个随机id)。
所以让我们说:
- 如果 link 包含
id=10
,则应将其复制到名为 "id10"
的字符串中。
- 最终结果是
id10
包含:http://website.com/text/book&id=10/programming
- 如果 link 包含
id=30
那么它应该被复制到一个名为 "id30"
的字符串中。
- 最终结果是
id30
包含:http://website.com/text/book&id=30/programming
- 以此类推,直到所有 link 都被复制到一个单独的不同字符串中。
我尝试使用 substring
函数解决这个问题,例如:
int p = 0;
String id10, id20, id30, id40;
p = Memo1->Lines->Text.Pos("id=20");
if (p != 0)
{
id10 = Memo1->Lines->Text.SubString(p + 1, Memo1->Lines->Text.Length());
ShowMessage(id10);
}
......
不幸的是,它总是失败。因为我是 c++ 和那种新手,但我不知道如何处理所有这些。对不起。
所以我需要你的帮助来处理这种情况。
非常感谢。
从文本 属性 调用 .Pos() 是获取备忘录控件整个文本中找到的字符串位置的索引。以下是如何在 C++ Builder 中从 TMemo 中读取每一行的简短示例:
AnsiString id10;
for (int i = 0; i < Memo1->Lines->Count; i++)
{
AnsiString line = Memo1->Lines->Strings[i];
if (line.Pos("id=10") > 0)
{
id10 = line;
ShowMessage(id10);
}
}
使用上面的代码片段,你应该能够推断出如何让它做你想做的事。
这是我第一次 post 来这里。
我在 Memo
或 TStringList
中有 4 个 link:
http://website.com/text/book&id=20/programming
http://website.com/text/book&id=10/programming
http://website.com/text/book&id=40/programming
http://website.com/text/book&id=30/programming
我想要做的是根据其 "id number"
复制每个 link,如上所示以分隔字符串,而不是基于其
TMemo
或 TStringList
中的索引。
这是因为每个link的id号总是每次或动态变化(它是一个随机id)。
所以让我们说:
- 如果 link 包含
id=10
,则应将其复制到名为"id10"
的字符串中。- 最终结果是
id10
包含:http://website.com/text/book&id=10/programming
- 最终结果是
- 如果 link 包含
id=30
那么它应该被复制到一个名为"id30"
的字符串中。- 最终结果是
id30
包含:http://website.com/text/book&id=30/programming
- 最终结果是
- 以此类推,直到所有 link 都被复制到一个单独的不同字符串中。
我尝试使用 substring
函数解决这个问题,例如:
int p = 0;
String id10, id20, id30, id40;
p = Memo1->Lines->Text.Pos("id=20");
if (p != 0)
{
id10 = Memo1->Lines->Text.SubString(p + 1, Memo1->Lines->Text.Length());
ShowMessage(id10);
}
......
不幸的是,它总是失败。因为我是 c++ 和那种新手,但我不知道如何处理所有这些。对不起。
所以我需要你的帮助来处理这种情况。
非常感谢。
从文本 属性 调用 .Pos() 是获取备忘录控件整个文本中找到的字符串位置的索引。以下是如何在 C++ Builder 中从 TMemo 中读取每一行的简短示例:
AnsiString id10;
for (int i = 0; i < Memo1->Lines->Count; i++)
{
AnsiString line = Memo1->Lines->Strings[i];
if (line.Pos("id=10") > 0)
{
id10 = line;
ShowMessage(id10);
}
}
使用上面的代码片段,你应该能够推断出如何让它做你想做的事。