替换文本文档C#中的多个单词
Replace multiples words in text document C#
所以我正在尝试获取一个程序 运行 以节省我为 android 工作室复制和粘贴大量文本的工作。为此,我创建了包含所需所有不同信息的列表框,添加了按钮单击事件以创建文档,以及另一个按钮单击事件以将文本添加到文档中。到目前为止,我可以在添加一组经纬度时生成所有文本,但我似乎无法弄清楚如何在中添加另一组经纬度。
例如
我需要:
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.79940000000, 31.01680000000)).title(bbb));
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.80150000000,
31.03650000000)).title(ccc));
但我得到的是:
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.79940000000, 31.01680000000)).title(bbb));
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.80150000000, 31.01680000000)).title(bbb));
经度值没有变化?我希望所有这些都有意义吗?
string path = Environment.CurrentDirectory + "/" + "latlong.txt";
private void button1_Click(object sender, EventArgs e)
{
if (!File.Exists(path))
{
File.CreateText(path);
MessageBox.Show("File has been created.");
}
}
private void button2_Click(object sender, EventArgs e)
{
using (StreamWriter stwr = new StreamWriter(path))
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
stwr.WriteLine("googleMap.addMarker(new MarkerOptions().position(new LatLng(" + listBox1.Items[i] + ", " + "ii" + ")).title(" + "bbb" + "));");
}
stwr.Close();
string text = File.ReadAllText("latlong.txt");
for (int ii = 0; ii < listBox2.Items.Count; ii++)
{
text = text.Replace("ii", Convert.ToString(listBox2.Items[ii]));
}
File.WriteAllText("latlong.txt", text);
}
}
我想问题是 Replace
正在替换 ii
的所有出现,所以如果你调试你的循环你会看到只有第一次 ii
被替换listBox2
中的第一项。要解决这个问题,我认为你应该将索引添加到 ii
,像这样
private void button2_Click(object sender, EventArgs e)
{
using (StreamWriter stwr = new StreamWriter(path))
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
stwr.WriteLine("googleMap.addMarker(new MarkerOptions().position(new LatLng(" + listBox1.Items[i] + ", " + "ii" + i + ")).title(" + "bbb" + "));");
}
stwr.Close();
string text = File.ReadAllText("latlong.txt");
for (int ii = 0; ii < listBox2.Items.Count; ii++)
{
text = text.Replace("ii"+ii, Convert.ToString(listBox2.Items[ii]));
}
File.WriteAllText("latlong.txt", text);
}
}
请注意,在第一个循环中我添加了 "ii" + i
,在第二个循环中我替换了 "ii"+ii
所以我正在尝试获取一个程序 运行 以节省我为 android 工作室复制和粘贴大量文本的工作。为此,我创建了包含所需所有不同信息的列表框,添加了按钮单击事件以创建文档,以及另一个按钮单击事件以将文本添加到文档中。到目前为止,我可以在添加一组经纬度时生成所有文本,但我似乎无法弄清楚如何在中添加另一组经纬度。 例如
我需要:
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.79940000000, 31.01680000000)).title(bbb));
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.80150000000,
31.03650000000)).title(ccc));
但我得到的是:
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.79940000000, 31.01680000000)).title(bbb));
googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.80150000000, 31.01680000000)).title(bbb));
经度值没有变化?我希望所有这些都有意义吗?
string path = Environment.CurrentDirectory + "/" + "latlong.txt";
private void button1_Click(object sender, EventArgs e)
{
if (!File.Exists(path))
{
File.CreateText(path);
MessageBox.Show("File has been created.");
}
}
private void button2_Click(object sender, EventArgs e)
{
using (StreamWriter stwr = new StreamWriter(path))
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
stwr.WriteLine("googleMap.addMarker(new MarkerOptions().position(new LatLng(" + listBox1.Items[i] + ", " + "ii" + ")).title(" + "bbb" + "));");
}
stwr.Close();
string text = File.ReadAllText("latlong.txt");
for (int ii = 0; ii < listBox2.Items.Count; ii++)
{
text = text.Replace("ii", Convert.ToString(listBox2.Items[ii]));
}
File.WriteAllText("latlong.txt", text);
}
}
我想问题是 Replace
正在替换 ii
的所有出现,所以如果你调试你的循环你会看到只有第一次 ii
被替换listBox2
中的第一项。要解决这个问题,我认为你应该将索引添加到 ii
,像这样
private void button2_Click(object sender, EventArgs e)
{
using (StreamWriter stwr = new StreamWriter(path))
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
stwr.WriteLine("googleMap.addMarker(new MarkerOptions().position(new LatLng(" + listBox1.Items[i] + ", " + "ii" + i + ")).title(" + "bbb" + "));");
}
stwr.Close();
string text = File.ReadAllText("latlong.txt");
for (int ii = 0; ii < listBox2.Items.Count; ii++)
{
text = text.Replace("ii"+ii, Convert.ToString(listBox2.Items[ii]));
}
File.WriteAllText("latlong.txt", text);
}
}
请注意,在第一个循环中我添加了 "ii" + i
,在第二个循环中我替换了 "ii"+ii