示例#1
0
        //Файл ZonesInterpretation.txt у меня такого формата
        //  -1	    ?
        //  0	    ?
        //  1	    Курс
        //  2	    АГ
        //  3	    Вариометр
        //  4	    Внекаб.обст.
        //  5       Высота
        //  6	    Перегрузка
        //  7	    Скорость
        //  8	    Угол атаки
        //  9	    ПЛТ другое
        //  10	    ИКШ-Скорость
        //  11	    ИКШ-Высота
        //  12	    ИКШ-Авиагоризонт
        //  13	    Другое

        /// <summary>
        /// Читает файл с интерпретацией зон - перевод номеров зон в их названия
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        public static Dictionary <string, string> ReadZonesInterpretation(string filename)
        {
            Dictionary <string, string> ZonesInterpretation = new Dictionary <string, string>();

            using (StreamReader rd = new StreamReader(new FileStream(filename, FileMode.Open)))
            {
                char     separator = '\n';
                char     delimiter = '\t';
                string[] str_arr   = { "" };
                string   big_str   = "";
                TobiiCsvReader.ReadPartOfFile(rd, out big_str);
                str_arr = big_str.Split(separator);

                int i = 0;
                for (i = 0; i < str_arr.Length; i++)
                {
                    if (str_arr[i] == "")
                    {
                        continue;
                    }
                    string[] tmp = { "" };
                    tmp = str_arr[i].Split(delimiter);

                    ZonesInterpretation.Add(tmp[0], tmp[1]);
                }
            }
            return(ZonesInterpretation);
        }
示例#2
0
        internal static void ParseAllTxtToUnionTable(string mainDir)
        {
            List <TxtFileResult> txtFileResults = new List <TxtFileResult>();

            string[] files = Directory.GetFiles(mainDir, "*.txt", SearchOption.AllDirectories);



            foreach (string fullfilepath in files)
            {
                char separator     = '\n';
                char delimiter     = '\t';
                char separatorDirs = '\\';

                TxtFileResult txtFileResult = new TxtFileResult();

                string filepath = Path.GetFileName(fullfilepath);
                string dir      = Path.GetDirectoryName(fullfilepath);


                string dirToTagsTmp = dir.Replace(mainDir, "");
                txtFileResult.tags = dirToTagsTmp.Split(separatorDirs).ToList();

                int N_pos = filepath.IndexOf("№"); // ищем позицию номера
                txtFileResult.OrderNumber = filepath.Substring(N_pos, 3);

                txtFileResult.filename = filepath;


                using (StreamReader rd = new StreamReader(new FileStream(fullfilepath, FileMode.Open)))
                {
                    string[] str_arr = { "" };
                    string   big_str = "";
                    TobiiCsvReader.ReadPartOfFile(rd, out big_str); // TODO: я расчитываю что файл режимов будет меньше 10000 строк
                    str_arr = big_str.Split(separator);

                    int i = 0;

                    for (i = 0; i < str_arr.Length; i++)
                    {
                        if (str_arr[i] == "")
                        {
                            continue;
                        }
                        string[] tmp = { "" };
                        tmp = str_arr[i].Split(delimiter);
                        int      timeInMs          = int.Parse(tmp[0]) * 3_600_000 + int.Parse(tmp[1]) * 60_000 + int.Parse(tmp[2]) * 1000 + int.Parse(tmp[3]);
                        TimeSpan timeOfCurFixation = TimeSpan.FromMilliseconds(timeInMs);

                        txtFileResult.tobiiRecords.Add(new TobiiRecord()
                        {
                            time_ms = timeInMs, CurFZone = int.Parse(tmp[4])
                        });
                    }
                }
                txtFileResults.Add(txtFileResult);
            }

            WriteTxtFileResultAsync(@"C:\_\1.csv", txtFileResults);
        }
示例#3
0
        public Dictionary <string, long> ReadSyncToIdToDictionary(string filename)
        {
            Dictionary <string, long> SyncToIDDict = new Dictionary <string, long>();

            using (StreamReader rd = new StreamReader(new FileStream(filename, FileMode.Open)))
            {
                char     separator = '\n';
                char     delimiter = '\t';
                string[] str_arr   = { "" };
                string   big_str   = "";
                TobiiCsvReader.ReadPartOfFile(rd, out big_str);
                str_arr = big_str.Split(separator);

                int i = 0;
                for (i = 0; i < str_arr.Length; i++)
                {
                    if (str_arr[i] == "")
                    {
                        continue;
                    }
                    string[] tmp = { "" };
                    tmp = str_arr[i].Split(delimiter);
                    SyncToIDDict.Add(tmp[0], long.Parse(tmp[1]));
                }
            }
            return(SyncToIDDict);
        }
示例#4
0
        public List <SaccadesCountOnInerval> ReadTxtToSaccadesCountOnInervalListSaccades(string filename)
        {
            List <SaccadesCountOnInerval> saccadesRecords = new List <SaccadesCountOnInerval>();

            using (StreamReader rd = new StreamReader(new FileStream(filename, FileMode.Open)))
            {
                char     separator = '\n';
                char     delimiter = '\t';
                string[] str_arr   = { "" };
                string   big_str   = "";
                TobiiCsvReader.ReadPartOfFile(rd, out big_str);
                str_arr = big_str.Split(separator);

                int i = 0;
                for (i = 0; i < str_arr.Length; i++)
                {
                    if (str_arr[i] == "")
                    {
                        continue;
                    }
                    string[] tmp = { "" };
                    tmp = str_arr[i].Split(delimiter);

                    SaccadesCountOnInerval saccadesRecord = new SaccadesCountOnInerval();
                    saccadesRecord.time_beg      = int.Parse(tmp[0]);
                    saccadesRecord.time_end      = int.Parse(tmp[1]);
                    saccadesRecord.SaccadesCount = int.Parse(tmp[2]);

                    saccadesRecords.Add(saccadesRecord);
                }
            }
            return(saccadesRecords);
        }
示例#5
0
        public List <TobiiRecord> ReadTxtToTobiiRecordListZones5Hz(string filename)
        {
            List <TobiiRecord> tobiiRecords = new List <TobiiRecord>();

            using (StreamReader rd = new StreamReader(new FileStream(filename, FileMode.Open)))
            {
                char     separator = '\n';
                char     delimiter = '\t';
                string[] str_arr   = { "" };
                string   big_str   = "";
                TobiiCsvReader.ReadPartOfFile(rd, out big_str);
                str_arr = big_str.Split(separator);

                int i = 0;
                for (i = 0; i < str_arr.Length; i++)
                {
                    if (str_arr[i] == "")
                    {
                        continue;
                    }
                    string[] tmp = { "" };
                    tmp = str_arr[i].Split(delimiter);

                    TobiiRecord tobiiRecord = new TobiiRecord();
                    tobiiRecord.time_ms  = int.Parse(tmp[0]);
                    tobiiRecord.CurFZone = int.Parse(tmp[1]);

                    tobiiRecords.Add(tobiiRecord);
                }
            }
            return(tobiiRecords);
        }
示例#6
0
        internal static List <Interval> SeparatorIntervalsReadFromUnionTxt(string file_reg, string file_csv)
        {
            List <Interval> intervals = new List <Interval>();

            char separator = '\n';
            char delimiter = '\t';

            using (StreamReader rd = new StreamReader(new FileStream(file_reg, FileMode.Open)))
            {
                string[] first_string_arr = { "" };

                string[] str_arr = { "" };
                string   big_str = "";
                TobiiCsvReader.ReadPartOfFile(rd, out big_str); // TODO: я расчитываю что файл режимов будет меньше 10000 строк
                str_arr = big_str.Split(separator);

                int RowFirst = 0, RowLast = 0, i = 0;

                for (i = 0; i < str_arr.Length; i++)
                {
                    string[] tmp = { "" };
                    tmp = str_arr[i].Split(delimiter);

                    if (tmp[0].Contains(file_csv))
                    {
                        int j;
                        RowFirst = i + 1;
                        for (j = RowFirst; j < str_arr.Length; j++)
                        {
                            string[] tmp2 = { "" };
                            tmp2 = str_arr[j].Split(delimiter);
                            if (tmp2[0] == "")
                            {
                                RowLast = j - 1;
                                break;
                            }
                        }
                        break;
                    }
                }

                for (i = RowFirst; i <= RowLast; i++)
                {
                    string[] tmp = { "" };
                    tmp = str_arr[i].Split(delimiter);
                    string Name    = tmp[0].Trim();
                    long   TimeBeg = 0;
                    long   TimeEnd = 0;
                    if (!long.TryParse(tmp[1], out TimeBeg))
                    {
                        MessageBox.Show(" SeparatorIntervalsReadFromUnionTxt - не парсится время " + tmp[1]); return(null);
                    }
                    if (!long.TryParse(tmp[2], out TimeEnd))
                    {
                        MessageBox.Show(" SeparatorIntervalsReadFromUnionTxt - не парсится время " + tmp[1]); return(null);
                    }

                    Interval interval = new Interval(Name, TimeBeg, TimeEnd);
                    intervals.Add(interval);
                }
            }
            return(intervals);
        }