用VC#2005解析含有多种格式的文本文件

用VC#2005解析含有多种格式的文本文件,第1张

用VC#2005解析含有多种格式的文本文件,第2张

一般来说,文本文件只包含一种格式(例如,逗号分隔或固定字段宽度)。然而,文本文件可能包含多种格式。这种情况应该怎么处理?

如果你的文本文件包含多种格式,你要使用TextFieldParser对象的PeekChars方法,从数据行的开头获取一定数量的字符,从而判断数据行的格式,然后告诉TextFieldParser对象数据行的格式是什么,读取数据行。PeekChars方法只返回指定数量的字符,不前进到下一行。逐一区分每一行数据的格式,逐行读取数据,就足以解析各种格式的文本文件,并顺利读取。

例如,假设在应用程序项目的Text文件夹中有一个名为“multi-format text file.txt”的文本文件。该文本文件的特殊之处在于它包含以下三种格式:

固定字段宽度分别为5、10和-1的数据行。

固定字段宽度分别为6、10、17和-1的数据行。

用逗号分隔的数据行。

以上三种格式的数据行有一个特点,就是数据行的起始字符分别是CK、PB和SP。所以我们只需要通过TextFieldParser对象的PeekChars方法获取数据行的前两个字符,然后根据它们的值设置TextFieldType属性。设置Delimiters属性(或调用SetDelimiters方法)或FieldWidths属性(或调用SetFieldWidths方法),并使用ReadFields方法读取数据行。通过以这种方式重复处理每个数据行,可以成功地解析和读取整个文本文件。

下面的程序代码演示了如何解析“富文本文件”中三种格式的数据。并将它们显示在各自的DataGridView控件中。相关程序代码如下所示:

privatech 1 _ demo form 035 _ load(object sender,eventargs e)
{
txt result . text = file . read all text(@ " text \ multi format text file . txt ");

DataGridView1。ColumnHeadersVisible = true

//设置列标题样式。
DataGridViewCellStyle column header style = new DataGridViewCellStyle();

columnHeaderStyle。BackColor =颜色。米色;
columnHeaderStyle。Font = new Font("Verdana ",9,FontStyle。粗体);
DataGridView1。ColumnHeadersDefaultCellStyle = columnHeaderStyle;

//设置DataGridView控件的数据行数。
DataGridView1。column count = 3;

//设置每条数据线的标题名。
datagridview1.columns [0]。name = "类别号";
datagridview1.columns [1]。name = "类别名称";
datagridview1.columns [2]。name = " description

DataGridView1。autosize columns mode = datagridview autosize columns mode。AllCells

DataGridView2。ColumnHeadersVisible = true
DataGridView2。ColumnHeadersDefaultCellStyle = columnHeaderStyle;

//设置DataGridView控件的数据行数。
DataGridView2。column count = 4;

//设置每条数据线的标题名。
datagridview2.columns [0]。name = "产品编号";
datagridview2.columns [1]。name = "产品名称";
datagridview2.columns [2]。name = "单位数量";
datagridview2.columns [3]。name = "单价";

DataGridView2。autosize columns mode = datagridview autosize columns mode。AllCells

DataGridView3。ColumnHeadersVisible = true
DataGridView3。ColumnHeadersDefaultCellStyle = columnHeaderStyle;

//设置DataGridView控件的数据行数。
DataGridView3。column count = 3;

//设置每条数据线的标题名。
datagridview3.columns [0]。name = "货运公司编号";
datagridview3.columns [1]。name = "货运公司名称";
datagridview3.columns [2]。name = "电话";

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用VC#2005解析含有多种格式的文本文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情