private static void ParseInDirectory_WithoutKAndRFiles(string dir, string filename, string tab2File, int NZones, string kadrDefault = "") { TobiiCsvReader tobiiCsvReader = new TobiiCsvReader(); TobiiExcelReader tobiiExcelReader = new TobiiExcelReader(); List <TobiiRecord> tobiiRecords = new List <TobiiRecord>(); tobiiExcelReader.TobiiExelRead(filename, tobiiRecords, NZones); List <TobiiRecord> FiltredTobiiList = tobiiCsvReader.CompactTobiiRecords(tobiiRecords); TabOfKeys tabOfKeys = ExcelReader.ReadTabOfKeys(tab2File, "B"); //Regex regex = new Regex(@"id\d{3}"); //MatchCollection matches = regex.Matches(Path.GetFileName(filename)); //if (matches.Count > 1 || matches.Count == 0) { MessageBox.Show("В имени файла " + filename + " найдено неверное кол-во id (0 или более 1)"); return; } //string FileId = matches[0].Value.Replace("id", ""); FZoneTab fZoneTab = new FZoneTab(); List <TobiiRecord> FZoneList = fZoneTab.Calculate(FiltredTobiiList, tabOfKeys); FZoneList = tobiiCsvReader.ClearFromGarbageZone(FZoneList, -1, FixationAddition); FZoneList = tobiiCsvReader.CompactTobiiRecords(FZoneList, "FZones"); fZoneTab.WriteResult(filename.Replace(".xlsx", ".txt"), FZoneList); }
public SeparatorIntervals ReadCSVForRFiles(string filename) { string[] wrongEvents = new string[] { null, "", "RecordingPause", "RecordingBuffering", "SyncPortOutHigh", "SyncPortOutLow", "под зоны IntervalEnd", "под зоны IntervalStart" }; char separator = '\n'; char delimiter = '\t'; int N_timestampCol = 0, N_eventCol = 0; long i = 0; SeparatorIntervals separatorIntervals = new SeparatorIntervals(); List <Interval> intervals = new List <Interval>(); separatorIntervals.filename = filename; separatorIntervals.Id = Path.GetFileNameWithoutExtension(filename); using (StreamReader rd = new StreamReader(new FileStream(filename, FileMode.Open))) { string[] first_string_arr = { "" }; first_string_arr = rd.ReadLine().Split(delimiter); N_timestampCol = TobiiCsvReader.SearchColFirst(first_string_arr, "Recording timestamp"); N_eventCol = TobiiCsvReader.SearchColFirst(first_string_arr, "Event"); bool EndOfFile = false; while (!EndOfFile) { string[] str_arr = { "" }; string big_str = ""; EndOfFile = TobiiCsvReader.ReadPartOfFile(rd, out big_str); str_arr = big_str.Split(separator); foreach (string s in str_arr) { string[] tmp = { "" }; i++; tmp = s.Split(delimiter); if (tmp.Count() < 3) { continue; } if (IsWrongEvent(wrongEvents, tmp[N_eventCol])) { continue; } Interval interval = new Interval(); if (!long.TryParse(tmp[N_timestampCol], out interval.Time_ms_beg)) { throw new Exception("Не могу преобразовать в timestamp строку " + tmp[N_timestampCol]); } if (intervals.Count > 0) { intervals.Last().Time_ms_end = interval.Time_ms_beg - 1; } interval.Name = tmp[N_eventCol]; intervals.Add(interval); } } intervals.Remove(intervals.Last());//убираем последний интервал, т.к. там последняя строка записи. separatorIntervals.Intervals = intervals; } return(separatorIntervals); }