/// <summary> /// Read start csv file /// </summary> /// <param name="path">path to file</param> /// <returns></returns> public IEnumerable <Student> ReadFile(string path) { const int SkipThreeItems = 3; using var reader = new StreamReader(path); using var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture); var records = new List <Student>(); csv.Read(); csv.ReadHeader(); while (csv.Read()) { if (csv.Context.Record.Length != csv.Context.HeaderRecord.Length) { throw new InvalidDataException("Wrong number of parameters"); } var listOfSubjects = new List <Subject>(); for (int index = SkipThreeItems; index < csv.Context.Record.Length; index++) { var subject = new Subject(csv.Context.HeaderRecord[index], csv.GetField <int>(index)); listOfSubjects.Add(subject); } records.Add(new Student(csv.GetField(0), csv.GetField(1), csv.GetField(2), listOfSubjects)); } return(records); }
private void Form1_Load(object sender, EventArgs e) { //read remember csv using (var reader = new StreamReader(Functions.bingPathToAppDir("\\data\\RememberMe.csv"))) using (var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Read(); csv.ReadHeader(); while (csv.Read()) { var record = new user { Username = csv.GetField("Username"), Password = csv.GetField("Password"), UserType = csv.GetField("UserType") }; UserR = record; } } //re login if remember file includes info if (UserR.Password != " " && UserR.Username != " ") { tBname.Text = UserR.Username; tBpassword.Text = UserR.Password; for (int i = 0; i < Program.records.Count; i++) { if (Program.records[i].Username == tBname.Text) { if (Program.records[i].Password == tBpassword.Text) { Flag = true; CurrentUser.Username = Program.records[i].Username; CurrentUser.Password = Program.records[i].Password; CurrentUser.UserType = Program.records[i].UserType; break; } } } if (Flag == true) { lbFlag.ForeColor = System.Drawing.Color.Green; cB1.Checked = true; cB1.Enabled = false; lbFlag.Text = "Sucsesfull Login"; testc(); btnLgn.Enabled = false; btnSignup.Enabled = false; } } }
private void Personalinformation_Load(object sender, EventArgs e) { using (var reader = new StreamReader(Functions.bingPathToAppDir("\\data\\users.csv"))) using (var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Read(); csv.ReadHeader(); while (csv.Read()) { var record = new user { Username = csv.GetField("Username"), Password = csv.GetField("Password"), UserType = csv.GetField("UserType"), Name = csv.GetField("Name"), Surname = csv.GetField("Surname"), Phonenumber = csv.GetField("Phonenumber"), Address = csv.GetField("Address"), Email = csv.GetField("Email"), Photo = csv.GetField("Photo") }; records.Add(record); } } for (int i = 0; i < records.Count; i++) { if (records[i].Username == Login.CurrentUser.Username) { textBoxName.Text = records[i].Name; textBoxSurname.Text = records[i].Surname; maskedTextBoxNumber.Text = records[i].Phonenumber; tBadress.Text = records[i].Address; textBoxEmail.Text = records[i].Email; base64Text = records[i].Photo; byte[] imageBytes = Convert.FromBase64String(records[i].Photo); // Convert byte[] to Image using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length)) { pictureBox1.Image = Image.FromStream(ms, true); } } Program.records[i] = records[i]; } Clear(); ClearUndo(); }
public List <String> GetStockSymbols() { List <string> myStringColumn = new List <string>(); using (var fileReader = File.OpenText(csvPath)) using (var csvResult = new CsvHelper.CsvReader(fileReader, CultureInfo.InvariantCulture)) { csvResult.Read(); csvResult.ReadHeader(); while (csvResult.Read()) { string stringField = csvResult.GetField <string>("Symbol"); myStringColumn.Add(stringField); } } return(myStringColumn); }
private void Form1_Load(object sender, EventArgs e) { listView1.Visible = false; btnUpdate.Enabled = false; btnDelete.Enabled = false; if (!System.IO.File.Exists(Functions.bingPathToAppDir("\\data\\reminder.csv"))) { System.IO.FileStream f = System.IO.File.Create(Functions.bingPathToAppDir("\\data\\reminder.csv")); f.Close(); } using (var reader = new StreamReader(Functions.bingPathToAppDir("\\data\\reminder.csv"))) using (var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Read(); csv.ReadHeader(); while (csv.Read()) { var record = new calender { username = csv.GetField("username"), type = csv.GetField("type"), note = csv.GetField("note"), date = csv.GetField("date"), clock = csv.GetField("clock") }; records.Add(record); } } listView1.Items.Clear(); foreach (var person in records) { if (Login.CurrentUser.Username == person.username) { var row = new string[] { person.type, person.note, person.date, person.clock }; var lvi = new ListViewItem(row); lvi.Tag = person; listView1.Items.Add(lvi); } } }
private void FormPhoneBook_Load(object sender, EventArgs e) { if (!System.IO.File.Exists(Functions.bingPathToAppDir("\\data\\phonebook.csv"))) { System.IO.FileStream f = System.IO.File.Create(Functions.bingPathToAppDir("\\data\\phonebook.csv")); f.Close(); } // load recods from users csv file using (var reader = new StreamReader(Functions.bingPathToAppDir("\\data\\phonebook.csv"))) using (var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Read(); csv.ReadHeader(); while (csv.Read()) { var record = new phonebook { name = csv.GetField("name"), surname = csv.GetField("surname"), phonenumber = csv.GetField("phonenumber"), address = csv.GetField("address"), description = csv.GetField("description"), email = csv.GetField("email"), user = csv.GetField("user") }; records.Add(record); } } listView1.Items.Clear(); foreach (var person in records) { if (Login.CurrentUser.Username == person.user) { var row = new string[] { person.name, person.surname, person.phonenumber, person.address, person.description, person.email }; var lvi = new ListViewItem(row); lvi.Tag = person; listView1.Items.Add(lvi); } } }
private void Form2_Load(object sender, EventArgs e) { Flag = true; testc(); if (!System.IO.File.Exists(Functions.bingPathToAppDir("\\data\\reminder.csv"))) { System.IO.FileStream f = System.IO.File.Create(Functions.bingPathToAppDir("\\data\\reminder.csv")); f.Close(); } // load recods from users csv file using (var reader = new StreamReader(Functions.bingPathToAppDir("\\data\\reminder.csv"))) using (var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Read(); csv.ReadHeader(); while (csv.Read()) { var record = new calender { username = csv.GetField("username"), type = csv.GetField("type"), note = csv.GetField("note"), date = csv.GetField("date"), clock = csv.GetField("clock") }; data.Add(record); } } foreach (var person in data) { if (Login.CurrentUser.Username == person.username) { pictureBox1.Visible = true; label2.Visible = true; label3.Visible = true; label2.Text = person.note; label3.Text = person.date + " " + person.clock; } } }
private void Notes_Load(object sender, EventArgs e) { if (!System.IO.File.Exists(Functions.bingPathToAppDir("\\data\\notes.csv"))) { System.IO.FileStream f = System.IO.File.Create(Functions.bingPathToAppDir("\\data\\notes.csv")); f.Close(); } using (var reader = new StreamReader(Functions.bingPathToAppDir("\\data\\notes.csv"))) using (var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Read(); csv.ReadHeader(); while (csv.Read()) { var record = new notes // we have one field for note, one field for note name,one field for current user { notename = csv.GetField("notename"), note = csv.GetField("note"), user = csv.GetField("user") }; records.Add(record); } } listView1.Items.Clear(); foreach (var person in records) { if (Login.CurrentUser.Username == person.user) { var row = new string[] { person.notename, person.note, person.user }; var lvi = new ListViewItem(row); lvi.Tag = person; listView1.Items.Add(lvi); } } }
string MergeStringTables(string oldLocalizedCsv, string newBaseCsv, string outputFileName) { // Use the CsvHelper to convert the two csvs to lists so they are easy to work with List <CsvEntry> oldEntries = new List <CsvEntry>(); List <CsvEntry> newEntries = new List <CsvEntry>(); using (var oldReader = new StringReader(oldLocalizedCsv)) using (var newReader = new StringReader(newBaseCsv)) { CsvHelper.CsvReader oldParser = new CsvHelper.CsvReader(oldReader, new CsvHelper.Configuration.Configuration(CultureInfo.InvariantCulture)); CsvHelper.CsvReader newParser = new CsvHelper.CsvReader(newReader, new CsvHelper.Configuration.Configuration(CultureInfo.InvariantCulture)); oldParser.Read(); newParser.Read(); oldParser.ReadHeader(); newParser.ReadHeader(); while (oldParser.Read()) { oldEntries.Add( new CsvEntry { id = oldParser.GetField("id"), text = oldParser.GetField("text"), file = oldParser.GetField("file"), node = oldParser.GetField("node"), lineNumber = oldParser.GetField <int>("lineNumber"), } ); } while (newParser.Read()) { newEntries.Add( new CsvEntry { id = newParser.GetField("id"), text = newParser.GetField("text"), file = newParser.GetField("file"), node = newParser.GetField("node"), lineNumber = newParser.GetField <int>("lineNumber"), } ); } } // This is where we merge the two string tables. Here's what's happening: // Use CsvParser to parse new base string table and old localized string table // The strategy is to use the fact that the two string tables look alike to optimize. // The algorithm goes through the string tables side by side. Imagine two fingers running // through the entries. At each line there are four different scenarios that we test for: // scenario 1: The lines match (matching tags) // scenario 2: The line in the new string table exists in the old string table but has been moved from somewhere else // scenario 3: The line in the new string table is completely new (no line tags in old string table match it) // scenario 4: The line in the old string table has been deleted (no line tags in new string table match it) //Go line by line: //1.If line tags are the same: add old localized with new line number and node. Increase index of both. (s1: matching lines) //2.Else if line tags are different: // a. Search forward in the old string table for that line tag // i. if we find it: add old localized with new line number and node. Remove from old. Increase new index. (s2: old line moved) // ii. If we don't find it: Search forward in new string table for that line tag // I. if we find it: add the one new line we are on. Increase new index. (s3: line is new) // II. if we don't find it: ignore line. Increase old index. (s4: line has been deleted) int oldIndex = 0; int newIndex = 0; List <CsvEntry> mergedEntries = new List <CsvEntry>(); // Mark new lines as new so they are easy to spot string newlineMarker = " (((NEW LINE)))"; while (true) { // If no more entries in old: add the rest of the new entries and break if (oldEntries.Count <= oldIndex) { for (int i = newIndex; i < newEntries.Count; i++) { CsvEntry entry = newEntries[i]; entry.text += newlineMarker; mergedEntries.Add(entry); } break; } // If no more entries in new: all additional old entries must have been deleted so break if (newEntries.Count <= newIndex) { break; } //1. If line tags are the same: add old localized with new line number. Increase index of both. if (oldEntries[oldIndex].id == newEntries[newIndex].id) { CsvEntry entry = oldEntries[oldIndex]; entry.lineNumber = newEntries[newIndex].lineNumber; entry.node = newEntries[newIndex].node; mergedEntries.Add(entry); oldIndex++; newIndex++; continue; } //2. Else if line tags are different: else { // a. Search forward in the old string table for that line tag bool didFindInOld = false; for (int i = oldIndex + 1; i < oldEntries.Count; i++) { // i. if we find it: add old localized with new line number. Remove from old. Increase index of new. (old line moved) if (oldEntries[i].id == newEntries[newIndex].id) { CsvEntry entry = oldEntries[i]; entry.lineNumber = newEntries[newIndex].lineNumber; entry.node = newEntries[newIndex].node; mergedEntries.Add(entry); oldEntries.RemoveAt(i); didFindInOld = true; newIndex++; break; } } if (didFindInOld) { continue; } // ii.If we don't find it: Search forward in new string table for that line tag bool didFindInNew = false; for (int i = newIndex + 1; i < newEntries.Count; i++) { // I. if we find it: add the one new line we are on. Increase index of new. (line is new) if (oldEntries[oldIndex].id == newEntries[i].id) { CsvEntry entry = newEntries[newIndex]; entry.text += newlineMarker; mergedEntries.Add(entry); newIndex++; didFindInNew = true; break; } } // II. if we don't find it: ignore line. Increase index of old. (line has been deleted) if (!didFindInNew) { oldIndex++; } } } // Entries are not necessarily added in the correct order and have to be sorted mergedEntries.Sort((a, b) => a.lineNumber.CompareTo(b.lineNumber)); // Create new Csv file using (var memoryStream = new MemoryStream()) using (var textWriter = new StreamWriter(memoryStream)) { // Generate the localised .csv file var csv = new CsvHelper.CsvWriter(textWriter, new CsvHelper.Configuration.Configuration(CultureInfo.InvariantCulture)); var lines = mergedEntries.Select(x => new { id = x.id, text = x.text, file = outputFileName, node = x.node, lineNumber = x.lineNumber }); csv.WriteRecords(lines); textWriter.Flush(); memoryStream.Position = 0; using (var reader = new StreamReader(memoryStream)) { return(reader.ReadToEnd()); } } }
private static void OpenDataDIP() { List <NemocniceData.Region> raw = new List <NemocniceData.Region>(); //process https://dip.mzcr.cz/api/v1/kapacity-intenzivni-pece-vlna-2.csv DateTime mindate = DateTime.Now.Date.AddDays(-120); using (var net = new System.Net.Http.HttpClient().GetStreamAsync("https://dip.mzcr.cz/api/v1/kapacity-intenzivni-pece-zdravotnicke-zarizeni-04-2021.csv")) { using (System.IO.StreamReader rr = new StreamReader(net.Result)) { var csv = new CsvHelper.CsvReader(rr, new CsvHelper.Configuration.CsvConfiguration(System.Globalization.CultureInfo.GetCultureInfo("cs")) { HasHeaderRecord = true, Delimiter = "," }); csv.Read(); csv.ReadHeader(); //csv.Read();//skip second line while (csv.Read()) { DateTime?date = Devmasters.DT.Util.ParseDateTime(csv.GetField <string>("datum")?.Trim(), null); if (date == null) { continue; } DateTime dt = date.Value; if (dt < mindate) { continue; } Console.WriteLine("."); string kraj_nuts_kod = csv.GetField <string>("kraj_nuts_kod"); string region = Kraje[kraj_nuts_kod]; var r = new NemocniceData.Region(); r.lastModified = date.Value; r.region = region; r.name = csv.GetField <string>("zz_nazev"); r.UPV_celkem = 0; r.UPV_volna = 0; r.ECMO_celkem = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("ecmo_kapacita_celkem"), 0).Value; r.ECMO_volna = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("ecmo_kapacita_volna"), 0).Value; r.CRRT_celkem = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("cvvhd_kapacita_celkem"), 0).Value; r.CRRT_volna = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("cvvhd_kapacita_volna"), 0).Value; r.IHD_celkem = 0; r.IHD_volna = 0; r.AROJIP_luzka_celkem = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("luzka_upv_niv_kapacita_celkem"), 0).Value; r.AROJIP_luzka_covid = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("luzka_upv_niv_kapacita_volna_covid_pozitivni"), 0).Value; r.AROJIP_luzka_necovid = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("luzka_upv_niv_kapacita_volna_covid_negativni"), 0).Value; r.Standard_luzka_s_kyslikem_celkem = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("luzka_standard_kyslik_kapacita_celkem"), 0).Value; r.Standard_luzka_s_kyslikem_covid = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("luzka_standard_kyslik_kapacita_volna_covid_pozitivni"), 0).Value; r.Standard_luzka_s_kyslikem_necovid = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("luzka_standard_kyslik_kapacita_volna_covid_negativni"), 0).Value; //r.Lekari_AROJIP_celkem = 0; //r.Lekari_AROJIP_dostupni = 0; //r.Sestry_AROJIP_celkem = 0; //r.Sestry_AROJIP_dostupni = 0; //r.Standard_luzka_celkem = 0; //r.Standard_luzka_s_monitor_celkem = 0; r.Ventilatory_prenosne_celkem = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("ventilatory_prenosne_kapacita_celkem"), 0).Value; r.Ventilatory_operacnisal_celkem = Devmasters.TextUtil.ConvertToInt(csv.GetField <string>("ventilatory_operacni_sal_kapacita_celkem"), 0).Value; raw.Add(r); } } } Devmasters.Logging.Logger.Root.Info("Saving"); var dates = raw.Select(m => m.lastModified).Distinct(); var kraje = raw.Select(m => m.region).Distinct(); foreach (var dt in dates.Where(m => m > mindate)) { Console.WriteLine(dt); NemocniceData nem = null; //new NemocniceData(); var id = "id_" + dt.ToString("yyyy-MM-dd"); List <NemocniceData.Region> nr = new List <NemocniceData.Region>(); foreach (var kr in kraje) { var lines = raw.Where(m => m.lastModified == dt && m.region == kr).ToArray(); var r = NemocniceData.Aggregate(lines); r.region = kr; nr.Add(r); } try { nem = ds.GetItem(id); // new NemocniceData(); } catch (Exception) { } if (nem == null) { nem = new NemocniceData(); } nem.id = id; nem.regions = nr; nem.lastUpdated = dt; ds.AddOrUpdateItem(nem, HlidacStatu.Api.V2.Dataset.Typed.ItemInsertMode.rewrite); } //ds.AddOrUpdateItem(nd, HlidacStatu.Api.V2.Dataset.Typed.ItemInsertMode.rewrite); }