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