public static Lrc InitLrc(string LrcPath)
{
Lrc lrc = new Lrc();
using (FileStream fs = new FileStream(LrcPath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
string line;
using (StreamReader sr = new StreamReader(fs, Encoding.Default))
{
while ((line = sr.ReadLine()) != null)
{
if (line.StartsWith("[ti:"))
{
lrc.Title = SplitInfo(line);
}
else if (line.StartsWith("[ar:"))
{
lrc.Artist = SplitInfo(line);
}
else if (line.StartsWith("[al:"))
{
lrc.Album = SplitInfo(line);
}
else if (line.StartsWith("[by:"))
{
lrc.LrcBy = SplitInfo(line);
}
else if (line.StartsWith("[offset:"))
{
lrc.Offset = SplitInfo(line);
}
else
{
Regex regex = new Regex(@"D:\lrc.lrc", RegexOptions.Compiled);
MatchCollection mc = regex.Matches(line);
double time = TimeSpan.Parse("00:" + mc[0].Groups[1].Value).TotalSeconds;
string word = mc[0].Groups[2].Value;
lrc.LrcWord.Add(time, word);
}
}
}
}
return lrc;
}
这是代码 很难受 小白一个
不是内存溢出,而是下标索引超出。
Regex regex = new Regex(@"D:\lrc.lrc", RegexOptions.Compiled);
这里是正则,不是写文件名
因为正则没写对,所以mc[0].Groups为空,没有mc[0].Groups[1]
错误不是说的很明显吗,内存溢出。