我目前正在使自己成为一个小工具。
基本上我有这样的列表:
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来计算?
再次编辑
太棒了,忘了上面的编辑,非常感谢!
答案 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 类型的列表,分别存储游戏的代码和名称。然后我们继续循环遍历RichTextBox的 Lines 属性,对于每一行,我们将线条除以我们找到的第一个索引( space );要求最多两个字符串,以避免分裂任何即将到来的元素;如果游戏名称包含空格。
对于获得的两个子字符串,我们将第一部分保存到List代码中,第二部分保存到List游戏中。
对于进一步的使用(遍历代码/名称),我们可以访问两个列表
for(int c = 0; c < codes.Count; c++)
{
MessageBox.Show(codes[c] + string.Empty + games[c]);
}