C# 输出数据表并生成.dat文件

目前想实现的功能是:输出参数(比如距离、功率等)在某个区间内变化时对应的传输损耗数据,然后进行画图。

暂时实现的是将输出的数据显示在textbox中,然后生成.dat文件。这样的话,后面调用gnuplot作图的时候就只需要使用这个.dat文件就可以了。

所以这一篇博客是介绍怎么用C#产生多组数据显示到textbox中,并将这些数据保存成为一个.dat文件。

1.产生数据并显示

以Hata模型中城市的传输损耗计算为例,让发射频率固定为900MHz,基站天线高度30m,移动台天线高度1m,传输距离范围为1~20km,计算传输损耗值,输出对应数据表到 textbox 中显示。

int f_c = 900;       //发射频率
int h_te = 30;       //基站天线高度
int h_re = 1;        //移动台天线高度
int d;               //传输距离
double L;

for (d = 10; d <= 20; d++)
{
     L = 69.55 + 26.16 * (Math.Log10(f_c)) - 13.82 * (Math.Log10(h_te)) - (3.2 * (Math.Log10(11.75 * h_re)) * (Math.Log10(11.75 * h_re)) - 4.97) + (44.9 - 6.55 * (Math.Log10(h_te))) * (Math.Log10(d));
     Txt_data.Text += d.ToString();
     Txt_data.Text += " ";
     Txt_data.Text += L.ToString("0.00");      //保留两位小数
     Txt_data.Text += "\r\n";                  //textbox的换行
}

运行结果:

C# 输出数据表并生成.dat文件_第1张图片
2.产生.dat文件

实际上是将 textbox 中的数据写到创建的数据文件中。

需要加入引用:

using System.IO;

代码:

 FileStream fs = new FileStream("D:\\a.dat", FileMode.Create);  //支持文件读写
 BinaryWriter bw = new BinaryWriter(fs);                        //二进制输入

 bw.Write(System.Text.Encoding.Default.GetBytes(this.Txt_data.Text));  
 //转化为二进制写入文件
            
 bw.Flush();              //清理缓冲器
 bw.Close();
 fs.Close();

使用VC打开a.dat的结果:
C# 输出数据表并生成.dat文件_第2张图片
3.使用命令窗口对数据进行作图

打开a.dat所在目录

C:\Users\Adninistrator>D:

使用gnuplot命令

D:\>gnuplot

使用数据文件作图:

gnuplot>plot "a.dat" w l

运行结果:
C# 输出数据表并生成.dat文件_第3张图片
4.下一步的任务

接下来就是要使用C#调用gnuplot进行画图(不使用命令窗口,也不需要输入命令),然后将图像进行保存后,再显示到 C# 中的 picturebox 中就行。

你可能感兴趣的:(c#学习,C#,dat文件)