//Файл 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); }
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); }
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); }
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); }
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); }
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); }