使用记事本应用程序进行练习,我有一个文本文件,其中包含按行号排列的记事本,如下所示:
1)第一音符
2)第二音符
n)n个笔记
预期用户可以从列表中删除笔记,所以我想避免这些笔记不组织,因此行号将自动重新组织。
int NumérotationFromTheUserTextFile, NumérotationInOrder = 1;
string[] Strings = File.ReadAllLines(logPath);
for(int i=0; i<Strings.Length; i++)
{
using (TextReader reader = File.OpenText(logPath))
{
string text = File.ReadLines(logPath).Skip(i).Take(1).First();
string[] bits = text.Split(')');
if(int.TryParse(bits[0], out int x))
{
NumérotationFromTheUserTextFile = x;
if (NumérotationFromTheUserTextFile != NumérotationInOrder)
{
Strings[i] = Strings[i].Replace(NumérotationFromTheUserTextFile.ToString(CultureInfo.InvariantCulture), NumérotationInOrder.ToString(CultureInfo.InvariantCulture));
}
NumérotationInOrder++;
}
}
}
File.WriteAllLines(logPath, Strings);
上面的代码完成了这项工作,除了它确实影响/更改了同一行上的所有其他相似数字。我希望它停止在每个行上都用这个符号')'进行编辑。
任何有关如何改进它的建议将不胜感激。
答案 0 :(得分:0)
正如我在评论中提到的那样,将行号与行本身存储在一起似乎是设计缺陷。您可以在运行时确定加载注释时确定的事情,并且可以在用户界面中显示它们而无需将其写入文件。显然,用户可以在应用程序外部修改文件,因此关于每一行内容的“规则”越少越好。
但是,如果您需要在每一行的开头存储snapshot.forEach(function(childSnapshot) {
var item = childSnapshot.val();
item.key = childSnapshot.key;
this.addresse.push(item);
});
,那么我们需要验证以下几点:
'#)
字符,请在该行的开头添加')'
#)
#)
字符前面的数字不正确,请对其进行修改。这里是一种方法:
')'