C# - Read, Write, Modify data in a file
C# - Read, Write, Modify data in a file
CODE
using System;
using System.IO;
using System.Collections.Generic;
class Program
{
private const string fileName = "data.txt";
public static void Main(string[] args)
{
Console.WriteLine(Environment.CurrentDirectory);
Dictionary<string, double> items = ReadData();
AddData("Lunch Bag", 100.2, items);
DisplayData(items);
ModifyData("Lunch Bag", 200.2, items);
DisplayData(items);
//INPUT File
//Pencil,2
//Book,25.5
//Box,30
//Lunch Bag,200.2
}
private static Dictionary<string, double> ReadData()
{
Dictionary<string, double> items = new Dictionary<string, double>();
if (!File.Exists(fileName))
throw new Exception("The input file doesn't exist.");
string[] lines = File.ReadAllLines(fileName);
foreach(string line in lines)
{
string[] fields = line.Split(',');
items.Add(fields[0].Trim(), Convert.ToDouble(fields[1].Trim()));
}
return items;
}
private static Dictionary<string, double> AddData(string itemName, double price, Dictionary<string, double> items)
{
if (items.ContainsKey(itemName))
Console.WriteLine("The item [{0}] already exists.", itemName);
else
{
items.Add(itemName, price);
int i = 0;
string result = "";
foreach (KeyValuePair<string, double> item in items)
{
result += item.Key + "," + item.Value;
if (i < items.Count - 1)
result += "\n";
i++;
}
File.WriteAllText(fileName, result);
Console.WriteLine("Item [{0}] added.", itemName);
}
return items;
}
private static Dictionary<string, double> ModifyData(string itemName, double newPrice, Dictionary<string, double> items)
{
bool isMatchFound = false;
foreach (KeyValuePair<string, double> item in items)
{
if (item.Key == itemName)
{
items[item.Key] = newPrice;
isMatchFound = true;
break;
}
}
if (isMatchFound)
{
int i = 0;
string result = "";
foreach (KeyValuePair<string, double> item in items)
{
result += item.Key + "," + item.Value;
if (i < items.Count - 1)
result += "\n";
i++;
}
File.WriteAllText(fileName, result);
Console.WriteLine("Item [{0}] Modified", itemName);
}
else
Console.WriteLine("The Item Name [{0}] doesn't exist.", itemName);
return items;
}
private static void DisplayData(Dictionary<string, double> items)
{
int i = 1;
Console.WriteLine(String.Format("{0,-6}{1,-20}{2,-7}", "S#", "Item Name", "Price"));
foreach (KeyValuePair<string, double> item in items)
{
Console.WriteLine(String.Format("{0,-6}{1,-20}{2,7}", i, item.Key, item.Value.ToString("0.00")));
i++;
}
}
}
Comments
Post a Comment