从文件读取和提取
本文关键字:提取 读取 文件 | 更新日期: 2023-09-27 18:35:28
>我有一个包含~3行的大文件。每一行都包含如下记录:
1|2|3|4|5|6|7|8|9
每行正好有 8 个分隔符,例如"|"。我正在寻找一种方法来读取此文件,然后仅从每一行中提取最后一个"9"数字并将其存储到另一个文件中。
编辑:
好的,这是我已经做的。
using (StreamReader sr = new StreamReader(filepath))
using (StreamWriter sw = new StreamWriter(filepath1))
{
string line = null;
while ((line = sr.ReadLine()) != null)
sw.WriteLine(line.Split('|')[8]);
}
File.WriteAllLines("filepath", File.ReadAllLines(filepath).Where(l => !string.IsNullOrWhiteSpace(l)));
读取文件,提取最后的数字,然后写入新文件并清除空白行。最后一个数字是 10-15 个符号,我想提取前 6 个。我继续阅读并尝试一些,当我完成或有一些问题时,我会再次编辑。
谢谢
编辑 2:好的,在这里我从数字中取出前 8 位数字:
sw.WriteLine(line.Substring(0, Math.Min(line.Length, 8)));
编辑3:我不知道我现在如何匹配文件中留下的每个数字。我想匹配它们并查看文件中有多少次女巫编号。
有什么帮助吗?
我正在寻找一种方法来读取此文件,然后仅从每一行中提取最后一个 [..] 数字并将其存储到另一个文件中。
您到底在哪一部分遇到问题?在伪代码中,这是您想要的:
fileReader = OpenFile("input")
fileWriter = OpenFile("output")
while !fileReader.EndOfFile
line = fileReader.ReadLine
records[] = line.Split('|')
value = records[8]
fileWriter.WriteLine(value)
do
因此,开始实施它,并随时在您遇到问题的任何特定行上提出问题。我发布的每一行代码都包含足够的指针来找出 C# 代码或术语以进行 Web 搜索。
你没有说你被卡在哪里。分解问题:
Write and run minimal C# program
Read lines from file
Break up one line
write result line to a file
您是否被困在其中任何一个?然后问一个具体的问题。这种分解技术是许多编程任务的关键,实际上是一般复杂任务的关键。
您可能会发现字符串拆分功能很有用。
因为它
是一个大文件,你必须逐行阅读它!
public IEnumerable ReadFileIterator(String filePath)
{
using (StreamReader streamReader = new StreamReader(filePath, Encoding.Default))
{
String line;
while ((line = streamReader.ReadLine()) != null)
{
yield return line;
}
yield break;
}
}
public void WriteToFile(String inputFilePath, String outputFilePath)
{
using (StreamWriter streamWriter = new StreamWriter(outputFilePath, true, Encoding.Default))
{
foreach (String line in ReadFileIterator(inputFilePath))
{
String[] subStrings = line.Split('|');
streamWriter.WriteLine(subStrings[8]);
}
streamWriter.Flush();
streamWriter.Close();
}
}
using (StreamReader sr = new StreamReader("input"))
using (StreamWriter sw = new StreamWriter("output"))
{
string line = null;
while ((line=sr.ReadLine())!=null)
sw.WriteLine(line.Split('|')[8]);
}
一些指针开始:StreamReader.Readline()
和String.Split()
。两页上都有示例。
使用 LINQ,您可以执行以下操作来筛选数字:
var numbers = from l in File.ReadLines(fileName)
let p = l.Split('|')
select p[8];
然后将它们写入一个新文件中,如下所示:
File.WriteAllText(newFileName, String.Join("'r'n", numbers));
使用 String.Split()
获取数组中的行并获取最后一个元素并将其存储到另一个文件中。对每行重复此过程。
试试这个...
// Read the file and display it line by line.
System.IO.StreamReader file =
new System.IO.StreamReader("c:''test.txt");
while((line = file.ReadLine()) != null)
{
string[] words = s.Split('|');
string value = words [8]
Console.WriteLine (value);
}
file.Close();