這可能是讀取文件最簡單的方法:
string[] domains = File.ReadAllLines("domain.txt");
string[] titles = File.ReadAllLines("titles.txt");
爲了使替換你可以使用string.Format
:
int n = domains.Length;
string[] results = new string[n];
for (int i = 0; i < n; ++i)
{
results[i] = string.Format(
@"<a href=""http://{0}"" target=""_blank"">{1}</a>",
domains[i], titles[i]);
}
要寫出你可以使用輸出的Linq:
File.WriteAllLines("file1.txt", results.Take(n/2).ToArray());
File.WriteAllLines("file2.txt", results.Skip(n/2).ToArray());
如果你的模板是一個參數,你可能想要構造格式str動態而不是硬編碼。這裏是你如何能做到這一點的例子:
using System;
using System.IO;
using System.Linq;
class Program
{
static string escapeBraces(string s)
{
return s.Replace("{", "{{").Replace("}", "}}");
}
static string createFormatString(string template, params string[] parameters)
{
template = escapeBraces(template);
for (int i =0; i < parameters.Length; ++i) {
template = template.Replace(
escapeBraces(parameters[i]),
"{" + i + "}");
}
return template;
}
static void Main(string[] args)
{
string template = @"<a {}href=""http://www.domain.com"" target=""_blank"">title</a>";
string formatString = createFormatString(template, "www.domain.com", "title");
string[] domains = File.ReadAllLines("domain.txt");
string[] titles = File.ReadAllLines("title.txt");
int n = domains.Length;
if (titles.Length != n)
throw new InvalidDataException("There must be the same number domains and titles.");
string[] results = new string[n];
for (int i = 0; i < n; ++i)
{
results[i] = string.Format(formatString, domains[i], titles[i]);
}
File.WriteAllLines("file1.txt", results.Take(n/2).ToArray());
File.WriteAllLines("file2.txt", results.Skip(n/2).ToArray());
}
}
這是微不足道的,對不起,我讓別人回答。請記住,字符串是不可變的,所以你會想做arr [12] = arr [12] .replace(「x」,「y」)而不僅僅是a = arr [12]; a.replace(「x」,「y」); (假設你把東西放在一個數組中)。 MSDN是你的朋友,代碼完成也是如此。 –
你說「100或更多」,但後來你想在一個文件中使用1-50,在第二個文件中使用50-100。如果有超過100行的話,第二部分將如何工作?你想在每個文件中使用一半的文件,或者每個文件中最多隻有50行文件,只需要多少個文件? –
感謝您的快速回復。從1-50節省的結果我只是想知道如何選擇特殊線路保存,例如從第10個字符串到20? –