C#读取文件并拉出特定行

时间:2009-12-07 14:25:27

标签: c#

提前致谢。我目前拥有的是一个选择文本文件的文件夹框。文本文件内容看起来像example.txt,它需要看起来像output.txt。注意:字符串CoreDBConnectString=一直到;Database=Source_DB.

一行
example.txt
[Information]
Date=
CreatedBy=
Unique=eqwe-asd-123-as12-3
CoreDataSource=
CoreDBConnectString=Provider=SQLOLEDB.1;Server=Server;Integrated Security=SSPI;Database=Source_DB
NoteDataSource=SQLServer
NoteDBConnectString=Provider=Provider=SQLOLEDB.1;Server=Server;Integrated Security=SSPI;Database=Source_DB
CoreDBCaseID=99
NoteDBCaseID=99


Output.txt
Table=99  (Comes from CoreDBCaseID)
Server=Server (comes from the string CoreDBConnectString=)
Security=SSPI (comes from the string CoreDBConnectString=)
Database=Source_DB (comes from the string CoreDBConnectString=)

5 个答案:

答案 0 :(得分:3)

您可以这样做:

// Load the file contents
string contents = File.ReadAllText("example.txt");

// Obtain the data using regular expressions
string id = string id = Regex.Match(
    contents, 
    @"CoreDBCaseID=(?<id>\d+)").Groups["id"].Value;

string server = string.Empty; // Add regex here
string security = string.Empty; // Add regex here
string database = string.Empty; // Add regex here

// Save the data in the new format
string[] data = new string[] {
    String.Format("Table={0}", id),
    String.Format("Server={0}", server),
    String.Format("Security={0}", security),
    String.Format("Database={0}", database)
};

File.WriteAllLines("output.txt", data);

快速了解这些正则表达式:

Regular Expression Cheat Sheet

Regular-Expressions.info


您可以使用positive lookahead停止匹配(;)字符。像这样:

@ “安全性=([\ d] +?)(=;?)”

答案 1 :(得分:2)

这是一个INI文件,这是一个非常古老的学校。如今,我们编程人员使用XML代替。因此,C#中没有对INI文件的内置支持。

您可以P/Invoke GetPrivateProfileString阅读数据。

如果您不介意信息部分标题,可以使用WritePrivateProfileString写出新数据:

[Information]
Table=99
Server=Server 
Security=SSPI 
Database=Source_DB

This CodeProject article on INI-file handling with C#可能会有所帮助。

答案 2 :(得分:0)

我会使用StreamReader.ReadLineRegEx的组合来读取每一行并提取相应的信息。

答案 3 :(得分:0)

打开文件并一次读取一行。您可以使用正则表达式(cheat sheet)来匹配和解析您要查找的文本。

答案 4 :(得分:0)

INI文件是旧的skool。因此,有人已经为它编写了一个类:http://www.codeproject.com/KB/cs/readwritexmlini.aspx。链接的类读取XML,INI,注册表和配置文件。