这篇博客参照http://www.cnblogs.com/insus/archive/2013/08/08/3247078.html

题目是这样的:

一个txt文件,内容格式:

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79 35.7 2013-08-09 15-38-59

现在要想这样输出:

|39.4%|2013-07-0915-38-79|35.7|2013-08-0915-38-59|
|35.7|2013-08-0915-38-59|39.4%|2013-07-0915-38-79|
|35.7|2013-08-0915-38-59|35.7|2013-08-0915-38-59|

直接贴代码:我的代码跟原帖由些不同。我的代码中用的是ref(不需先赋值,out得先赋值),另外我这里一个方法用的是静态函数,一个用非静态,其实道理都是一样。

 class Program
{
static void Main(string[] args)
{
string[] lines = File.ReadAllLines("../../ReadLineToAnotherTypeOfShow.txt"); List<ChangeClass> ccList=new List<ChangeClass> ();
ChangeClass ccItem = null; foreach(string line in lines)
{
//方法一
//ChangeClass cc = new ChangeClass();
//cc.TryParse(line,ref ccItem);
//方法二
if( ChangeClass2.TryParse(line,ref ccItem))
ccList.Add(ccItem);
} for (int i = 1; i < ccList.Count;i=i+2 )
{
Console.WriteLine("|"+ccList[i-1]+"|"+ccList[i]+"|");
} Console.ReadKey(); } } partial class ChangeClass
{
protected string e1;
protected string e2; public ChangeClass() { }
public ChangeClass(string e1,string e2)
{
this.e1 = e1;
this.e2 = e2;
} public bool TryParse(string singelLine,ref ChangeClass item)
{
if (string.IsNullOrEmpty(singelLine.Trim()))
{
return false;
}
string[] array = singelLine.Trim().Split(' '); if (array[0] == "" || array[1] == "" || array[2] == "")
return false; e1 = array[0].ToString();
e2 = array[1] + array[2].ToString(); item = new ChangeClass(e1,e2);
return true;
} public override string ToString()
{
return "" + e1 + "|" + e2 + "";
} } partial class ChangeClass2
{
protected static string E1;
protected static string E2; public ChangeClass2(string e1, string e2)
{
E1 = e1;
E2 = e2;
} public static bool TryParse(string singelLine, ref ChangeClass item)
{
if (string.IsNullOrEmpty(singelLine.Trim()))
{
return false;
}
string[] array = singelLine.Trim().Split(' '); if (array[0] == "" || array[1] == "" || array[2] == "")
return false; E1 = array[0].ToString();
E2 = array[1] + array[2].ToString(); item = new ChangeClass(E1, E2);
return true;
} public override string ToString()
{
return "" + E1 + "|" + E2 + "";
} }

  总结上面的几个知识点:1。从changclass2可以发现,其实静态变量也是可以通过构造函数赋值的。

2、我们也可以通过静态的类型构造函数对静态赋值,但是,不能有参数,形如: static ChangeClass2(){E1=10;}//

通过静态变量赋值,必须是常量。

3、ref和out都引用同一个内存块,不同是,声明ref的变量不需赋值,而out变量要提前赋值;

4.这个方法中还有一种思想:

通过foreach和迭代器结合,操作数组。我们通过在classchange类中重写头string()方法,导致在main()中调用console.writline(classchange的实例),会直接调用重写的头string()方法,从而输出我们自己想要的结果;

读取txt文件,并用其他格式显示的更多相关文章

  1. jquery读取csv文件并用json格式输出

    直接贴上代码: <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Untit ...

  2. Javascript写入txt和读取txt文件的方法

    文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...

  3. 路径正确下,Eclipse读取txt文件仍失败

    症状:使用Eclipse读取文件时,路径输入确认正确(前提!!!),但控制台总报错: 错误类型一: Exception in thread "main" java.io.FileN ...

  4. 读取txt文件加DevExpress之进度条progressBarControl

    进度条使用 主要掌握下边几个命令, //水平进度条 progressBarControlH.Properties.Minimum = 0;//1:设置最大数量,比如读取txt文件内容,先要查出行数,然 ...

  5. Java中读取txt文件中中文字符时,出现乱码的解决办法

    这是我写的一个Java课程作业时,遇到的问题. 问题描述: 我要实现的就是将txt文件中的内容按一定格式读取出来后,存放在相应的数组. 我刚开始运行时发现,英文可以实现,但是中文字符就是各种乱码. 最 ...

  6. c# 读取txt文件并分隔

    public static List<PostPerson> GetNameByFile() { #region 读取txt文件 var file = File.Open(Environm ...

  7. web端自动化——Python读取txt文件、csv文件、xml文件

    1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...

  8. 怎样用 I/O流读取txt文件?

    java.io包提供了用来永久保存对象状态的机制,可处理各种类型的流,如文件流.字节流.字符流等,还提供实现可串行化Serializable接口.可处理对象流. Java语言提供3种自动生成的标准流. ...

  9. python3 读取txt文件数据,绘制趋势图,matplotlib模块

    python3 读取txt文件数据,绘制趋势图 test1.txt内容如下: 时间/min cpu使用率/% 内存使用率/% 01/12-17:06 0.01 7.61 01/12-17:07 0.0 ...

随机推荐

  1. 019:InnoDB 表空间内部组织结构

    一. 表空间内部组织结构 表空间 内部有多个段对象(Segment) 组成 每个段(Segment)由区(Extent) 组成 每个区(Extent)由页(Page)组成 每个页里面报存数据 (或者叫 ...

  2. Java复习——枚举与注解

    枚举 枚举就是让某些变量的取值只能是若干固定值中的一个,否则编译器就会报错,枚举可以让编译器在编译阶段就控制程序的值,这一点是普通变量无法实现的.枚举是作为一种特殊的类存在的,使用的是enum关键字修 ...

  3. 【BZOJ】1878: [SDOI2009]HH的项链 (主席树)

    题目 传送门:QWQ 分析 莫队也能做,但我想练练主席树. 求k-th一样维护第i个时候的线段树,线段树来维护区间不同数. 然后查询时可以通过上下界小优化一波. 但是我的代码丑陋无比,常数巨大(捂脸 ...

  4. 脱壳系列(五) - MEW 壳

    先用 PEiD 看一下 MEW 11 1.2 的壳 用 OD 载入程序 按 F8 进行跳转 往下拉 找到这个 retn 指令,并下断点 然后 F9 运行 停在该断点处后再按 F8 右键 -> 分 ...

  5. nova volume-create的使用

    处理cinder可以直接创建volume外,nova也是可以的 如: 可以看出创建一个名字为volume2的卷,大小为10G 把创建好的volume2卷直接挂在vm虚拟机上 如:先查看计算节点有几个v ...

  6. 第六章 声明式服务调用: Spring Cloud Feign

    我们在使用 Spring Cloud Ribbon 时, 通常都会利用它对 RestTemplate 的请求拦截来实现对依赖服务的接口调用, 而 RestTemplate 已经实现了对 HTTP 请求 ...

  7. 比XGBOOST更快--LightGBM介绍

    xgboost的出现,让数据民工们告别了传统的机器学习算法们:RF.GBM.SVM.LASSO.........现在,微软推出了一个新的boosting框架,想要挑战xgboost的江湖地位.笔者尝试 ...

  8. TortoiseSVN/Git覆盖图标失效的解决方案

    之前在电脑上安装了TortoiseGit和TortoiseSVN这两种版本控制,使用一段时间之后发现,这两种版本控制的覆盖图标都无法显示,起初以为是git和svn使用的图标的不一样,有冲突,导致这两种 ...

  9. Delphi 画箭头

    procedure TForm1.Line(x, y, x2, y2: integer); begin canvas.MoveTo(x, y); canvas.LineTo(x2, y2); end; ...

  10. html 中的media属性

    在css中我们使用media标签来区分调用哪个css样式,比如使用media="print"来表示当执行打印文档时,使用print.css样式.这样使得文档更有得于打印,如将页面宽 ...