很抱歉,我的建议太具体了,这对您来说是最好的 我的文本文件中包含以下数据。
1234-5678
SK3
2345-6789
R306
R550
R551
R552
R553
R554
R555
3456-7890
RL573
RL574
RL575
我需要写一个新的文本文件
1234-5678 SK3
2345-6789 R306
2345-6789 R550
2345-6789 R551
2345-6789 R552
2345-6789 R553
2345-6789 R554
2345-6789 R555
3456-7890 RL573
3456-7890 RL574
3456-7890 RL575
答案 0 :(得分:0)
假设文件的第一个条目是一个前缀,并且所有前缀都包含“-”:
如果文件很大,则应使用流而不是将其加载到列表中。
代码是C#格式的元代码,如果使用正确的语法,也可以在VB.NET中使用。
StringBuilder sb = new StringBuilder();
List<string> lines = file.ReadAllLines("yourfile.txt");
foreach (String line in lines) {
string prefix;
if (line.Contains("-")) {
prefix = line + " ";
} else {
sb.appendline(prefix + line);
}
}
// save content of StringBuilder to file
Streamreader的工作方式如下:
using (StreamReader sr = new StreamReader(path))
{
string prefix;
while (sr.Peek() >= 0)
{
String line = sr.readLine();
if (line.Contains("-")){
prefix = line + " ";
} else {
sb.appendline(prefix + line);
}
}
}
VB.Net版本:
Dim sb As StringBuilder = New StringBuilder()
Dim Prefix As String = String.Empty
Using reader As StreamReader = New StreamReader("[Input File Path]")
While Not reader.EndOfStream
Dim Line As String = reader.ReadLine()
If Line.Contains("-"c) Then
Prefix = Line & " "
Else
sb.AppendLine(Prefix & Line)
End If
End While
End Using
Using writer As StreamWriter = New StreamWriter("[Output File Path]")
writer.WriteLine(sb)
End Using