如何使用 C# 从 .asc 文件中的特定位置读取数据
How can I read data from specific location in .asc file using c#
我有 .asc 文件,其中有 1000 行。 row中的每一列都是固定长度的,并且以space分隔。我想连续读取从第 296 个位置开始到第 326 个位置结束的电子邮件 ID 列。
有什么方法可以从 .asc 文件中读取这样的数据吗?
这可能对您有用。我只是在读取文件中的电子邮件 ID,无论它是什么扩展文件,可能是 txt 或 asc。此外,如果电子邮件地址位于其他地方而不是 296 或 326 也没有关系。
public void ExtractAllEmails()
{
string datafrmAsc = File.ReadAllText(YourASCFile); //read File
Regex emailRegex = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.IgnoreCase);
MatchCollection emailMatches = emailRegex.Matches(datafrmAsc);
StringBuilder sb = new StringBuilder();
foreach (Match emailMatch in emailMatches)
{
sb.AppendLine(emailMatch.Value);
}
File.WriteAllText(SomeTxtFile, sb.ToString());
}
假设这是一个大文本文件,你可以这样做:
List<string> emailsList = new List<string>();
int startIndex = 295;
int endIndex = 325;
using (FileStream stream = File.Open("c:\test.asc", FileMode.Open))
using (StreamReader sr = new StreamReader(stream))
{
string line = string.Empty;
while ((line = sr.ReadLine()) != null)
{
emailsList.Add(line.Substring(startIndex, endIndex - startIndex).Trim());
}
}
我有 .asc 文件,其中有 1000 行。 row中的每一列都是固定长度的,并且以space分隔。我想连续读取从第 296 个位置开始到第 326 个位置结束的电子邮件 ID 列。
有什么方法可以从 .asc 文件中读取这样的数据吗?
这可能对您有用。我只是在读取文件中的电子邮件 ID,无论它是什么扩展文件,可能是 txt 或 asc。此外,如果电子邮件地址位于其他地方而不是 296 或 326 也没有关系。
public void ExtractAllEmails()
{
string datafrmAsc = File.ReadAllText(YourASCFile); //read File
Regex emailRegex = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.IgnoreCase);
MatchCollection emailMatches = emailRegex.Matches(datafrmAsc);
StringBuilder sb = new StringBuilder();
foreach (Match emailMatch in emailMatches)
{
sb.AppendLine(emailMatch.Value);
}
File.WriteAllText(SomeTxtFile, sb.ToString());
}
假设这是一个大文本文件,你可以这样做:
List<string> emailsList = new List<string>();
int startIndex = 295;
int endIndex = 325;
using (FileStream stream = File.Open("c:\test.asc", FileMode.Open))
using (StreamReader sr = new StreamReader(stream))
{
string line = string.Empty;
while ((line = sr.ReadLine()) != null)
{
emailsList.Add(line.Substring(startIndex, endIndex - startIndex).Trim());
}
}