gpt4 book ai didi

c# - 使用存储在文件中的变量来触发事件

转载 作者:可可西里 更新时间:2023-11-01 11:36:29 24 4
gpt4 key购买 nike

我对 C# 很陌生,对它的文件写入和读取也很陌生。无论如何,我正在制作一个事件序列,当计时器达到一个数字时将播放事件,同样在该文件中,计时器也会根据文件中存储的数字调整其速度。我该怎么做,这是解码后该文件的文本。

 [EventSequence]
{
DisplayName "Default"
OFFset = 0
Resolution = 192

}
[SyncSequence]
{
0 = B 180000
}
[EventsNotes]
{
0 = E "section Intro"
15168 = E "Note1"
21120 = E "Note2"
26880 = E "Note3"
38976 = E "Note4"
44928 = E "Note5"
}
[Events]
{
192 = N 0 0
240 = N 0 0
288 = N 0 0
336 = N 0 0
384 = N 4 0
432 = N 0 0
480 = N 0 0
528 = N 0 0
576 = N 3 0
624 = N 0 0
672 = N 0 0
720 = N 0 0
768 = N 4 0
816 = N 0 0
864 = N 0 0
912 = N 0 0
960 = N 2 0
1008 = N 0 0
1056 = N 0 0
1104 = N 0 0
1152 = N 1 0
}

计时器会非常快,但取决于同步下的值。大值是触发事件的时间,N 0 0 等是事件。 “事件注释”的类似设置。其余只是基本信息。在高级中感谢任何帮助或建议。

最佳答案

我为你的情况做了这个功能:

public List<string> GetFileKeyValues(string fileName, string key)
{
List<string> res = new List<string>();
try
{
if (!string.IsNullOrEmpty(key))
{
using (System.IO.StreamReader tr = new System.IO.StreamReader(fileName))
{
bool keyFound = false;
while (!tr.EndOfStream)
{
string s = tr.ReadLine().ToLower();
if (s.Contains(key.ToLower())) keyFound = true;
else
{
if (keyFound)
{
if (!s.Contains("{") && !s.Contains("}")) res.Add(s);
if (s.Contains("}")) break;
}
}
}
tr.Close();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return res;
}

用法 假设我们想要获取 [SyncSequence] 值:

List<string> res = GetFileKeyValues(@"C:\t.txt", "[SyncSequence]");
if(res != null && res.Count > 0)
{
//Do Something with res[0], it will return 0 = B 180000
//So you split it by "=" to get B 180000 or any thing you want...
}

关于c# - 使用存储在文件中的变量来触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10136182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com