/*

 * Benutzer: Kner

 * Datum: 26.01.2010

 * Zeit: 14:54

 *

 * Datenstrukturen für das Umwandeln von CSV-Datei in PDF-Dokumente

 */

using System;

using System.IO;

using System.Collections.Generic;

 

 

namespace Classlist

{

        class Program

        {

                static string FileName = @"SchuelerLFV.csv";

                struct TPerson{

                        public int KatNr;

                        public string FirstName;

                        public string SureName;

                        public string Gender;

                }

                       

                class Class{

                        public TPerson [] Pupils;

                public string Name;

                public string HeadTeacher;

                public string Year;

                        public Class(int nrOfPupils){

                                Pupils = new TPerson[nrOfPupils];

                        }

                public void DebugPrint(){

                                Console.WriteLine();

                        Console.WriteLine(Name);

                                       

                        for (int i=0; i<Pupils.Length; i++)

                                if (Pupils[i].SureName != null) {

                                    Console.WriteLine("{0} {1} {2} {3}",

                                                       Pupils[i].KatNr, Pupils[i].FirstName,

                                                       Pupils[i].SureName, Pupils[i].Gender);

               

                        }

                }

                }

                class Classes{

                        public Class[] Groups;

                        public int NrOfClasses;

                        public Classes(int Max){

                                Groups = new Class[Max];

                                NrOfClasses = 0;

                        }

                }

               

                public static void Main(string[] args)

                {

                                               

                        Classes schoolClasses = new  Classes(20);

                        String line = "";

                        try {

                          StreamReader reader = new StreamReader(FileName,

                                                                     System.Text.Encoding.Default);

                         

                                string className,oldClassName="";

                                int lineNumber = 0;

                                       

                                while ((line = reader.ReadLine()) != null) {

                                        //split and remove "

                                        string[] items = line.Split(';');

                                 

                                    for( int i=0; i<items.Length; i++)

                                               items[i] = items[i].Replace("\"","");

                                   

                               

                                    if (items[0] =="ssd_kla_bezeichnung") continue;

                                   

                                    className=items[0];

                                    if (oldClassName!=className){

                                        lineNumber=0;

                                        oldClassName=className;

                                        // create new class

                                        Console.WriteLine();

                                        Console.WriteLine("=====================");

                                        Console.WriteLine(className);

                                        schoolClasses.Groups[schoolClasses.NrOfClasses] = new Class(50);

                                        schoolClasses.Groups[schoolClasses.NrOfClasses].Name = oldClassName;

                                        schoolClasses.NrOfClasses++;

                                       

                                    }

                                    Console.Write("{0} ", items[2]);

                                    // attention: NrOfClasses already incremented

                                    Class cl = schoolClasses.Groups[schoolClasses.NrOfClasses-1];

                                    cl.Pupils[lineNumber].KatNr = Convert.ToInt32(items[1]);

                                    cl.Pupils[lineNumber].SureName      = items[2];

                                    cl.Pupils[lineNumber].FirstName     = items[3];

                                    cl.Pupils[lineNumber].Gender                = items[4];

                                                           

                                    lineNumber++;

                                   

                          }

                          reader.Close();

                          for (int i=0; i<schoolClasses.NrOfClasses; i++) schoolClasses.Groups[i].DebugPrint();

                        }

                        catch(Exception e) {

                                Console.WriteLine(e.Message);

                        }

                        Console.ReadKey(true);

                }

        }

}/