private static void UpdateInfoFromFileName(UltraID3 uid3, string regExpr, string userRegExpString) { try { Regex trackinfoRegexp = new Regex(regExpr, RegexOptions.Singleline); ///TODO: string _t = ComboBox_ExtractTagsFromFNmane.Text; SortedList ht = new SortedList(); if (userRegExpString.IndexOf(RE_ARTIS) != -1) { ht.Add(userRegExpString.IndexOf(RE_ARTIS), RE_ARTIS); } if (userRegExpString.IndexOf(RE_TRACKNR) != -1) { ht.Add(userRegExpString.IndexOf(RE_TRACKNR), RE_TRACKNR); } if (userRegExpString.IndexOf(RE_ALBUM) != -1) { ht.Add(userRegExpString.IndexOf(RE_ALBUM), RE_ALBUM); } if (userRegExpString.IndexOf(RE_YEAR) != -1) { ht.Add(userRegExpString.IndexOf(RE_YEAR), RE_YEAR); } if (userRegExpString.IndexOf(RE_TITLE) != -1) { ht.Add(userRegExpString.IndexOf(RE_TITLE), RE_TITLE); } foreach (Match m in trackinfoRegexp.Matches(uid3.FileName)) { IEnumerator enHt = ht.Keys.GetEnumerator(); for (int i = 1; i < m.Groups.Count; i++) { enHt.MoveNext(); int key = (int)enHt.Current; Group g = m.Groups[i]; try { switch (ht[key].ToString()) { case RE_TITLE: uid3.Title = g.Value; uid3.ID3v1Tag.Title = g.Value; uid3.ID3v2Tag.Title = g.Value; break; case RE_ARTIS: uid3.Artist = g.Value; uid3.ID3v1Tag.Artist = g.Value; uid3.ID3v2Tag.Artist = g.Value; break; case RE_ALBUM: uid3.Album = g.Value; uid3.ID3v1Tag.Album = g.Value; uid3.ID3v2Tag.Album = g.Value; break; case RE_TRACKNR: try{ uid3.SetTrackNum(g.Value); }catch {} try{ uid3.ID3v1Tag.SetTrackNum(g.Value); } catch { } try { uid3.ID3v2Tag.SetTrackNum(g.Value); } catch { } break; case RE_YEAR: uid3.SetYear(g.Value); uid3.ID3v1Tag.SetYear(g.Value); uid3.ID3v2Tag.SetYear(g.Value); break; } } catch { } } } uid3.Write(); } catch { } }
private static void UpdateInfoFromFileName(UltraID3 uid3, string regExpr, string userRegExpString) { try { Regex trackinfoRegexp = new Regex(regExpr, RegexOptions.Singleline); ///TODO: string _t = ComboBox_ExtractTagsFromFNmane.Text; SortedList ht = new SortedList(); if (userRegExpString.IndexOf(RE_ARTIS) != -1) ht.Add(userRegExpString.IndexOf(RE_ARTIS), RE_ARTIS); if (userRegExpString.IndexOf(RE_TRACKNR) != -1) ht.Add(userRegExpString.IndexOf(RE_TRACKNR), RE_TRACKNR); if (userRegExpString.IndexOf(RE_ALBUM) != -1) ht.Add(userRegExpString.IndexOf(RE_ALBUM), RE_ALBUM); if (userRegExpString.IndexOf(RE_YEAR) != -1) ht.Add(userRegExpString.IndexOf(RE_YEAR), RE_YEAR); if (userRegExpString.IndexOf(RE_TITLE) != -1) ht.Add(userRegExpString.IndexOf(RE_TITLE), RE_TITLE); foreach (Match m in trackinfoRegexp.Matches(uid3.FileName)) { IEnumerator enHt = ht.Keys.GetEnumerator(); for (int i = 1; i < m.Groups.Count; i++) { enHt.MoveNext(); int key = (int)enHt.Current; Group g = m.Groups[i]; try { switch (ht[key].ToString()) { case RE_TITLE: uid3.Title = g.Value; uid3.ID3v1Tag.Title = g.Value; uid3.ID3v2Tag.Title = g.Value; break; case RE_ARTIS: uid3.Artist = g.Value; uid3.ID3v1Tag.Artist = g.Value; uid3.ID3v2Tag.Artist = g.Value; break; case RE_ALBUM: uid3.Album = g.Value; uid3.ID3v1Tag.Album = g.Value; uid3.ID3v2Tag.Album = g.Value; break; case RE_TRACKNR: try{ uid3.SetTrackNum(g.Value); }catch{} try{ uid3.ID3v1Tag.SetTrackNum(g.Value); } catch { } try { uid3.ID3v2Tag.SetTrackNum(g.Value); } catch { } break; case RE_YEAR: uid3.SetYear(g.Value); uid3.ID3v1Tag.SetYear(g.Value); uid3.ID3v2Tag.SetYear(g.Value); break; } } catch { } } } uid3.Write(); } catch { } }