如何为富文本框中的每一行重复此操作?
How to repeat this for every line in rich text box?
我正在给自己做一个小工具。
基本上我有这样的列表:
NPWR00160_00 LittleBigPlanet
NPWR00163_00 Warhawk
NPWR00179_00 Pure
NPWR00180_00 Midnight Club: Los Angeles
NPWR00181_00 echochrome™
NPWR00187_00 WipEout® HD
当前输入到 richTextBox 中。
我正在尝试这样做,获取该行的 NPWRXXXXXX 并将其保存为一个字符串,然后是游戏名称并将其保存为另一个字符串,我可以继续执行我最初要做的事情做它。但是对于 richTextBox 的每一行,都按照上面的格式进行。
不太确定如何从 richTextBox 中获取一行并将其保存为字符串,我可以在其中对 richTextBox 的每一行重复该过程。
根据我的尝试,我给自己举了一个例子,字符串是 NPWR02727_00 Skydive: Proximity Flight。我所做的是:
string game = "NPWR02727_00 Skydive: Proximity Flight";
string NPWR = game.Substring(0,13);
string gamename = game.Remove(0, 13);
richTextBox2.AppendText("NPWRID: " + NPWR + " Game: " + gamename + Environment.NewLine);
实际上确实成功保存了字符串并将其作为新形式写入第二个文本框中。
唯一的问题是我不确定如何将 RichTextBox 中的一行转换为字符串,并为富文本框中的每一行重复该过程
编辑
所以我发现了如何从 richTextBox 中将字符串变成一行..
string line = richTextBox1.Lines[0];
所以这将获取第一行并将其保存为字符串"line"
现在将代码更新为
string game = richTextBox1.Lines[0];
string NPWR = game.Substring(0,13);
string gamename = game.Remove(0, 13);
richTextBox2.AppendText("NPWRID: " + NPWR + " Game: " + gamename + Environment.NewLine);
现在如何让每一行的代码达到 运行,我知道我需要一些东西来重复它,并且需要一些东西来改变 0
每次重复时加 1?
再次编辑
太棒了,忘了上面的编辑,非常感谢!
我建议你做类似的事情:
var codes = new List<string>();
var games = new List<string>();
foreach(var s in richTextBox1.Lines)
{
string[] p = s.Split(new char[] { ' ' }, 2);
if (p.Count() == 1) { continue; }
codes.Add(p[0]);
games.Add(p[1]);
}
基本上,我们声明了两个string类型的List,分别存储代码和游戏名称。然后我们继续循环遍历 RichTextBox 的 Lines 属性,对于每一行,我们用第一个索引(space) 我们发现;要求最多两个字符串,以避免拆分任何即将到来的元素;如果游戏名称包含 spaces.
对于得到的两个子串,我们将第一部分保存到List代码中,将第二部分保存到List游戏中。
为了进一步使用(遍历codes/names)我们可以访问两个列表
for(int c = 0; c < codes.Count; c++)
{
MessageBox.Show(codes[c] + string.Empty + games[c]);
}
我正在给自己做一个小工具。
基本上我有这样的列表:
NPWR00160_00 LittleBigPlanet
NPWR00163_00 Warhawk
NPWR00179_00 Pure
NPWR00180_00 Midnight Club: Los Angeles
NPWR00181_00 echochrome™
NPWR00187_00 WipEout® HD
当前输入到 richTextBox 中。
我正在尝试这样做,获取该行的 NPWRXXXXXX 并将其保存为一个字符串,然后是游戏名称并将其保存为另一个字符串,我可以继续执行我最初要做的事情做它。但是对于 richTextBox 的每一行,都按照上面的格式进行。
不太确定如何从 richTextBox 中获取一行并将其保存为字符串,我可以在其中对 richTextBox 的每一行重复该过程。
根据我的尝试,我给自己举了一个例子,字符串是 NPWR02727_00 Skydive: Proximity Flight。我所做的是:
string game = "NPWR02727_00 Skydive: Proximity Flight";
string NPWR = game.Substring(0,13);
string gamename = game.Remove(0, 13);
richTextBox2.AppendText("NPWRID: " + NPWR + " Game: " + gamename + Environment.NewLine);
实际上确实成功保存了字符串并将其作为新形式写入第二个文本框中。
唯一的问题是我不确定如何将 RichTextBox 中的一行转换为字符串,并为富文本框中的每一行重复该过程
编辑
所以我发现了如何从 richTextBox 中将字符串变成一行..
string line = richTextBox1.Lines[0];
所以这将获取第一行并将其保存为字符串"line"
现在将代码更新为
string game = richTextBox1.Lines[0];
string NPWR = game.Substring(0,13);
string gamename = game.Remove(0, 13);
richTextBox2.AppendText("NPWRID: " + NPWR + " Game: " + gamename + Environment.NewLine);
现在如何让每一行的代码达到 运行,我知道我需要一些东西来重复它,并且需要一些东西来改变 0
每次重复时加 1?
再次编辑
太棒了,忘了上面的编辑,非常感谢!
我建议你做类似的事情:
var codes = new List<string>();
var games = new List<string>();
foreach(var s in richTextBox1.Lines)
{
string[] p = s.Split(new char[] { ' ' }, 2);
if (p.Count() == 1) { continue; }
codes.Add(p[0]);
games.Add(p[1]);
}
基本上,我们声明了两个string类型的List,分别存储代码和游戏名称。然后我们继续循环遍历 RichTextBox 的 Lines 属性,对于每一行,我们用第一个索引(space) 我们发现;要求最多两个字符串,以避免拆分任何即将到来的元素;如果游戏名称包含 spaces.
对于得到的两个子串,我们将第一部分保存到List代码中,将第二部分保存到List游戏中。
为了进一步使用(遍历codes/names)我们可以访问两个列表
for(int c = 0; c < codes.Count; c++)
{
MessageBox.Show(codes[c] + string.Empty + games[c]);
}