这篇博客参照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. 20181110_wait和async

    一. Awit和async的由来: await/async本身是一个语法糖,编译器提供的一个简化编程的功能; 在C#升级和.net Framework升级的时候, 产生的, 所以说并不是CLR的产物 ...

  2. CentOS7 tar打包工具 打包,解包,打包压缩,打包解压缩

    tar命令 選項與參數: -c :建立打包檔案,可搭配 -v 來察看過程中被打包的檔名(filename) -t :察看打包檔案的內容含有哪些檔名,重點在察看『檔名』就是了: -x :解打包或解壓縮的 ...

  3. ERROR无法从静态上下文中引用非静态变量

    ERROR无法从静态上下文中引用非静态变量 2012-06-16 20:58:52 分类: Java 什么是“static”? 学习过java.C++或C的人都应该认识这个关键字.用这个关键字修饰的变 ...

  4. supervisor+uwsgi+django遇到writing to a closed pipe/socket/fd解决

    原因: 最近开发的一个项目,由于有个更新job需要消耗的时间非常长,一度以为更新出现了错误. 经过: 于是打开debug模式测试, 异常开启,调试发现system返回了 writing to a cl ...

  5. 机器学习,数据挖掘,统计学,云计算,众包(crowdsourcing),人工智能,降维(Dimension reduction)

    机器学习 Machine Learning:提供数据分析的能力,机器学习是大数据时代必不可少的核心技术,道理很简单:收集.存储.传输.管理大数据的目的,是为了“利用”大数据,而如果没有机器学习技术分析 ...

  6. stm32通信概述

    本文提到的内容有以下几个方面: 通信概述 串口通信 I2C通信 CAN通信 SPI通信 I2S通信 USB通信 其他通信 一.通信概述 按照数据传送方式分: 串行通信(一条数据线.适合远距离传输.控制 ...

  7. 「小程序JAVA实战」小程序头像图片上传(下)(45)

    转自:https://idig8.com/2018/09/09/xiaochengxujavashizhanxiaochengxutouxiangtupianshangchuan44/ 接下来,我们应 ...

  8. js 阻止事件捕获

    1.支持W3C标准的浏览器在添加事件时用addEventListener(event,fn,useCapture)方法,基中第3个参数 useCapture是一个Boolean值,用来设置事件是在事件 ...

  9. 修改SecureCRT终端的Home和End功能键。

    SecureCRT真是个不错的ssh客户端工具,但在使用时发现跟自己的一些使用习惯不符合,例如home.end.pageup.pagedown和delete等键. 默认情况下一些按键的功能如下: pa ...

  10. sqlserver,oracle,mysql等的driver驱动,url怎么写

    oracle driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521 ...