예제 #1
0
파일: Form1.cs 프로젝트: nikoroz/bokhyllan
 //Button som lägger till ny bok
 private void ButtonAddNewBook_Click(object sender, EventArgs e)
 {
     outputBox.Text = Bibliotekarie.SkapaBok(
         userInputBoxTitel.Text,
         userInputBoxSkribent.Text,
         Convert.ToInt32(userInputBoxUtgivningsår.Value),
         userInputBoxTyp.Text,
         true);
 }
예제 #2
0
            //Metod som öppnar och läser en textfil till boklistan
            public static void OpenFile(string filePath)
            {
                //Skapar en lista som håller i strängvektorer
                List <string[]> booksToImport = new List <string[]>();

                //Försök att öppna och läsa filen
                try
                {
                    //Skapar en ny lista som håller i vanliga strängar
                    List <string> itemSaver = new List <string>();

                    //Skapar en ny FileStream som öppnar filen och en StreamReader som läser av vad som matas in i FileStreamen
                    FileStream inStröm = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                    using (StreamReader läsare = new StreamReader(inStröm, Encoding.Default))
                    {
                        string filText = "";

                        //Sålänge vad StreamReader skriver till variabeln "filText" inte
                        //är lika med null så läggs strängen till i stränglistan itemSaver.
                        //Returnerar variabeln null innebär det att vi nått slutet av listan.
                        //Loopen bryts och StreamWritern går till garbage collection.
                        while ((filText = läsare.ReadLine()) != null)
                        {
                            itemSaver.Add(filText);
                        }
                    }

                    //För varje sträng i listan "itemSaver" skapas en ny strängvektor som sedan
                    //läggs till i strängvektorlistan "booksToImport". Splitmetoden bestämmer var strängarna ska kapas
                    //för att sedan lagras separat.
                    foreach (string a in itemSaver)
                    {
                        string[] vektor = a.Split(new string[] { "###" }, StringSplitOptions.None);
                        booksToImport.Add(vektor);
                    }

                    //För varje strängvektor i listan; skapa ett Bok-objekt.
                    //Varje index i strängvektorn innehåller information om en enskild egenskap.
                    foreach (string[] item in booksToImport)
                    {
                        string titel        = item[0];
                        string skribent     = item[1];
                        string typ          = item[2];
                        bool   tillänglig   = true;
                        int    utgivningsår = 0; //Mina Bok-objekt kräver ett utgivningsår och jag fick inte modifiera textfilen

                        if (item[3] != "true")
                        {
                            tillänglig = false;
                        }

                        Bibliotekarie.SkapaBok(titel, skribent, utgivningsår, typ, tillänglig);
                    }
                }
                //Det enda som kan krascha öppningen och läsningen av filen är att filen är i fel format på något sätt.
                //Därför räcker det med att alla Exceptions får samma meddelande här
                catch (Exception)
                {
                    MessageBox.Show(
                        "Ogiltigt filformat...\n\nFilen måste ha filändelsen \".txt\" och vara formaterad på följande sätt:\n\n" +
                        "string###string###string###bool\n" +
                        "Titel###Författare###Typ###tillänglighet\n" +
                        "Pippi Långstrump###Astrid Lindgren###Roman###true", "Whoops!", MessageBoxButtons.OK);
                }
            }