C# Menyimpan Data Pada File .csv

csv1

Sebuah data logger biasanya dibuat untuk mengambil sebuah data dari sebuah perangkat dan menyimpannya pada sebuah media. Media tersebut bisa memory device yang portable atau bisa disimpan pada PC. Kadang beberapa orang menginginkan data tersebut berformat yang bisa dibuka oleh MS Excel agar bisa mudah diolah kemudian. File tersebut berformat .xls. Dan .csv sendiri bisa dibuka oleh MS Excel, akan tetapi format ini tidak bisa menyimpan formula seperti .xls.
Berikut ini adalah kode contoh untuk membuat file .cvs pada C# dengan skenario
“Data1, Data2, Data3 dimisalkan dengan membangkitkan bilangan random.
Data akan disimpan perdetik pada .csv dan .csv baru akan dibuat pada menit yang baru.”
Berikut kodenya.

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Diagnostics;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Net.Sockets;
using System.Net;
using System.Reflection;
using System.Resources;
using System.Threading;
using System.Text;
using System.Windows.Forms;

namespace Logger
{
	/// <summary>
	/// Description of MainForm.
	/// </summary>
	public partial class MainForm : Form
	{
		public MainForm()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
		
		int menitLast;
		void Timer1Tick(object sender, EventArgs e)
		{
			int menitCurrent;
			Random r = new Random();
			labelData1.Text = (r.NextDouble()*100).ToString();
			labelData2.Text = (r.NextDouble()*100).ToString();
			labelData3.Text = (r.NextDouble()*100).ToString();
			labelMenit.Text = DateTime.Now.Minute.ToString();
			labelJam.Text = DateTime.Now.Hour.ToString();
			labelTanggal.Text = DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString();
			
			string headerTeks = "Data1;Data2;Data3;Menit;Jam;Tanggal;" + Environment.NewLine;
			string logText = labelData1.Text + ";" + labelData2.Text + ";" + labelData3.Text + ";" + 
				labelMenit.Text + ";" + labelJam.Text + ";"   + labelTanggal.Text + ";" + Environment.NewLine;
			
			string namaFile = labelTanggal.Text + "-" + labelJam.Text + "-" + labelMenit.Text;
			menitCurrent = DateTime.Now.Minute;
			if(menitCurrent != menitLast)
			{
				writeCSV(namaFile,headerTeks);
			}
			writeCSV(namaFile,logText);
			menitLast = menitCurrent;
		}
		
		private void writeCSV(string date,string teks)
		{
			string path = date + ".csv";
			string cureFIle = @path;
			if(!File.Exists(cureFIle))//if file doesn't exist
			{
				File.Create(cureFIle).Close();
			}
		    
			try
		    {
				File.AppendAllText(cureFIle,teks);
			}
			catch(Exception ex)
			{
				MessageBox.Show(ex.ToString() + Environment.NewLine + "Can't access" + cureFIle + Environment.NewLine
				               +"This file maybe used by another application.","Write File",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
	}
}

.csv tergenerate permenit
csv3
File .csv yang berisi data.
csv2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s