Beolvasás és adatok eltátólása több szabály alapján

Címkék
Beolvasás és adatok eltátólása több szabály alapján
2021-04-25T19:35:50+02:00
2021-05-13T23:59:49+02:00
2022-12-06T19:40:38+01:00
Gergo3170
Üdv!  Egy ideje már magamtól tanulok programozni és rendszeresen gyakorlok feladatokkal. 

Ez az első olyan példa  amikor nem tudom hogy kell beolvasni az adatokat. Álltalában mindig tanulátorokkal voltak elválasztva az adatok ám itt két elválasztási szabály van.





Egy osztály második félévi hiányzásai állnak rendelkezésére a naplo.txt fájlban.
A hiányzások naponként csoportosítva szerepelnek, minden napot a # karakter kezd, majd egyegy szóközzel elválasztva a hónap és a nap sorszáma következik. Az aznapi hiányzások
tanulónként külön sorokban vannak, a tanuló napi hiányzásait egy hét karakterből álló
karaktersorozat írja le. A karaktersorozat minden karaktere egy-egy órát ad meg. Értéke
az O betű, ha a tanuló jelen volt az adott órán, az X utal az igazolt, az I az igazolatlan távollétre,
végül N betű jelzi, ha a tanulónak akkor nem volt órája. Például:
# 01 15
Galagonya Alfonz OXXXXXN
# 01 16
Alma Hedvig OOOOOIO
Galagonya Alfonz XXXXXXX
A fenti példa a január 15-16-i hiányzásokat tartalmazza. Galagonya Alfonznak január 15-én
hat órája lett volna, de csak az első órán volt jelen, utána igazoltan hiányzott. Alma Hedvignek
január 16-án hét órája lett volna, de a 6. óráról igazolatlanul távol maradt.




Mindig úgy csináltam a feledatokat ,hogy vagy egy structot vagy class-t készítettem,

Beolvastam őket egy streamreaderel  és eltrároltam  az adatokat a megfelelő változokba, és utána  feltöltöttem őket egy listába.

A kérdésem az, hogy esetleg itt is megoldható az általam említett  módszer használata?, ha igen akkor  hogy kéne megcsinálnom? 



Porbáltam switchet használni de még ezzel se tudtam normálisan eltárolni az adatokat 

Ez a 2017-es októberi emelt közismereti infóm tudom hogy már van kész megoldás hozzá viszont az eltér az én álltal használt módszeremtől:
Mutasd a teljes hozzászólást!
Csatolt állomány

  • Helló,
    nem tudom aktuális-e még, de gyorsan összedobtam egy ilyet, hátha segít valamit.

    using System;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;

    namespace Naplo_txt
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                string txt_hely = "naplo.txt";
                string[] lines;
                if (File.Exists(txt_hely))
                {
                    lines = File.ReadAllLines(txt_hely, Encoding.UTF8);
                    string Datum = "";
                    for (int i = 0; i < lines.Length; i++)
                    {
                        if (lines.Contains('#'))
                        {
                            Datum = lines
    .Substring(2, lines.Length - 3);
                        }
                        else
                        {
                            string adatok = lines.Substring(lines.Length - 7, 7);
                            int[] szamlalo = new int[4];
                            foreach (char c in adatok)
                                if (c == 'O') szamlalo[0]++;
                                else if (c == 'X') szamlalo[1]++;
                                else if (c == 'I') szamlalo[2]++;
                                else if (c == 'N') szamlalo[3]++;
                            dataGridView1.Rows.Add(Datum, lines.Substring(0, lines.Length - 8), szamlalo[0], szamlalo[1], szamlalo[2], szamlalo[3]);
                            Datum = "";
                        }
                    }
                }
            }
        }
    }
    Mutasd a teljes hozzászólást!
    Csatolt állomány
Címkék
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd