我正在尝试编写一个可以增加.ini文件中行数的程序。 文件看起来像这样(不是完整的文件):
[IndexFile]
;*** DATABASE FILES ***
FileSpec_1=C:\Solid4.2\solid.1 1000m
FileSpec_2=C:\Solid4.2\solid.2 1000m
FileSpec_3=C:\Solid4.2\solid.3 1000m
;
; SOLID uses by default 'solid.db' as the first database file,
我希望我的程序读取文件中包含“FileSpec”的行数,并询问用户他/她总共需要多少行。用户输入量ex:8。然后程序将另外五行写入文件。
这是我到目前为止所做的:
int count = File.ReadLines(filepath).Skip(16).Count(line => line.Contains("FileSpec"));
Console.WriteLine(("There are ") + (count) + (" Filespec-lines in the file, how many do you want in total?"));
int antall22=(int)Convert.ToInt32(Console.ReadLine());
int linestoadd = antall22 - count;
因此,“linestoadd”是应该写入文件的行数。 如何在文件中写入行数并增加下划线后的数字,使其增加到两个(10+)和三个(100+)个数字?
答案 0 :(得分:0)
你可以这样做:
var lines = new List<string>();
for(int i=count+1; i<= antall22; i++)
{
lines.Add(string.Format("FileSpec_{0}=C:\Solid4.2\solid.{0} 1000m",i));
}
File.AppendAllLines(filepath,lines);
输入将为您的文件添加5行:
FileSpec_4=C:\Solid4.2\solid.4 1000m
FileSpec_5=C:\Solid4.2\solid.5 1000m
FileSpec_6=C:\Solid4.2\solid.6 1000m
FileSpec_7=C:\Solid4.2\solid.7 1000m
FileSpec_8=C:\Solid4.2\solid.8 1000m
它将始终在FileSpec_{number}
中添加连续数字,即使它们的长度是多位数
阐释:
for(int i=count+1; i<= antall22; i++)
表示最初i
= count + 1&lt; - 下一行数,并将继续antall22
1(i ++)。在每次迭代中i
都是count+1+numberofiteration
,所以它将是:
第一次迭代:i = 4
第二次迭代:i = 5
等......