Пример #1
0
        private void ImportDAM_Click(object sender, RoutedEventArgs e)
        {
            if (ListOfDAMs.Items.Count < 10)
            {
                ofd.FileName    = "";   //Hogy ne legyen már valamilyen érték a kifelölt mezőben
                ofd.Multiselect = true; //Egyszerre több elem is kiválasztható
                ofd.Filter      = "Text file|*.txt";
                ofd.Title       = "Import the DAM output";
                if (ofd.ShowDialog() == true) //Megnyitás gombbal valamit betöltött a felhasználó sikeresen
                {
                    foreach (string filename in ofd.FileNames)
                    {
                        string[]      rawDAMFile = FilesExportImport.LoadFile(filename); //Egy sor a DAM-ban itt 1 tömb
                        LoadedDAMFile ldf        = new LoadedDAMFile(filename, new string[rawDAMFile.Length][]);
                        for (int i = 0; i < rawDAMFile.Length; i++)
                        {
                            ldf.LoadedDAMValues[i] = rawDAMFile[i].Split('\t');
                        }

                        ldf.LoadedDAMValues = ErrorDataChecking(ldf.LoadedDAMValues); //Null-t kap vissza, ha a felhasználó nem akarja folytatni ezzel a DAM-mal
                        if (ldf.LoadedDAMValues != null)
                        {
                            DAMFiles.Add(ldf);
                            ListOfDAMs.Items.Refresh();
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("You reached the maximum number of DAMs for this experiment!", "DAM number exceeded", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Пример #2
0
 private void CalculateTimeValues(LoadedDAMFile DAMFile)
 {
     for (int i = 0; i < DAMFile.LoadedDAMValues.Length; i++)
     {
         string[] timeFormatted = DAMFile.LoadedDAMValues[i][2].Split(':');
         if (timeFormatted[1] == "00" && timeFormatted[2] == "00")
         {
             TimeValues.WholeHour    = timeFormatted;
             TimeValues.WholeHourRow = i;
             TimeValues.FirstDayDate = DAMFile.LoadedDAMValues[i][1];
             break;
         }
     }
 }
Пример #3
0
        public static void NumberOfDaysAndNumberOfRowsInADay(LoadedDAMFile DAMFile)
        {
            NumberOfRowsInAnHour = MinutesOfHour / ExperimentSettingsValues.BinLength; //Mennyi sorból áll egy óra
            NumberOfRowsInADay   = NumberOfRowsInAnHour * HoursOfDay;                  //Mennyi sorból áll egy nap

            int currentNumberOfDays  = -1;                                             //Az első teljes óra még nem jelent egy napot, hiszen onnan kezdjük csak a számolást
            int currentNumberOfHours = 0;                                              //Az eddigi napok alapján lehet számolni az utolsó napot meghatározó egész óráig az órák számát. Utána egyesével minden egész órát meg kell figyelni.
            int actualRowNumber      = WholeHourRow;                                   //Először a teljes óra sorának az értékét kapja és mindig egy napnyi sorral nő az értéke és megnézi, hogy van-e még eleme ott a DAM fájlnak. Ha van, akkor az megint egy teljes óra és egy újabb nap, ha nincs, akkor nincs több nap

            while (true)                                                               //Ez a ciklus a napok megszámolásához kell, a napok számának megadásához
            {
                try
                {
                    string temp = DAMFile.LoadedDAMValues[actualRowNumber][0];
                    currentNumberOfDays++;
                    actualRowNumber += NumberOfRowsInADay;
                }
                catch
                {
                    currentNumberOfHours = currentNumberOfDays * HoursOfDay; //Eddig ennyi órát lehetett összeszámolni a rendelkezésre álló teljes napok alapján

                    while (true)                                             //Ez a ciklus az órák megszámolásához kell, az utolsó egész óra mentéséhez
                    {
                        try
                        {
                            actualRowNumber += NumberOfRowsInAnHour;
                            string temp = DAMFile.LoadedDAMValues[actualRowNumber][0];
                            currentNumberOfHours++;
                        }
                        catch
                        {
                            break;
                        }
                    }
                    break;
                }
            }

            for (int i = 0; i < currentNumberOfHours; i++) //Feltölti a kiírásra szánt órák listáját
            {
                ExactHourValueForHours.Add(CalculateHours(i));
            }

            int indexOfHourInDay = 0;                                                                                               //Ez az index ahhoz, hogy a String tömbben hol járunk épp, tehát hogy a 24-ből hanyadik óránál tartunk a napból.

            for (int i = WholeHourRow; i < WholeHourRow + NumberOfRowsInADay; i++)                                                  //Egyesével végigmegy a DAM fájl értékein egy napra tekintve az első oszlopban és megnézi, hogy a sötét és világos sorok hogyan vannak felosztva az órákban.
            {
                if (DAMFile.LoadedDAMValues[i][9] == "0")                                                                           //Az adott sor sötét
                {
                    if (DarkLightValuesForHours[indexOfHourInDay] != "Light" && DarkLightValuesForHours[indexOfHourInDay] != "L+D") //Ha ez az óra eddig vagy semmi volt, vagy sötét, akkor sötét lesz
                    {
                        DarkLightValuesForHours[indexOfHourInDay] = "Dark";
                    }
                    else //Ha ez az óra eddig világos volt, akkor közös lesz
                    {
                        DarkLightValuesForHours[indexOfHourInDay] = "L+D";
                    }
                }
                else if (DAMFile.LoadedDAMValues[i][9] == "1")                                                                     //Az adott sor világos
                {
                    if (DarkLightValuesForHours[indexOfHourInDay] != "Dark" && DarkLightValuesForHours[indexOfHourInDay] != "D+L") //Ha ez az óra eddig vagy semmi volt, vagy világos, akkor világos lesz
                    {
                        DarkLightValuesForHours[indexOfHourInDay] = "Light";
                    }
                    else //Ha ez az óra eddig sötét volt, akkor közös lesz
                    {
                        DarkLightValuesForHours[indexOfHourInDay] = "D+L";
                    }
                }

                if (i != WholeHourRow && (i - WholeHourRow) % NumberOfRowsInAnHour == 0) //Legelső elem egész óra lesz, de ott még nem kell tovább lépnie a D/L tömb következő elemére, hiszen ez lesz az első elem benne
                {
                    indexOfHourInDay++;
                }
            }

            NumberOfDays  = currentNumberOfDays;
            NumberOfHours = currentNumberOfHours;
        }