在文本文件中执行一行

时间:2011-01-15 03:48:16

标签: c# console

我有一个程序可以读取文本文件,这些文件文件充满了代码,这些代码旨在由程序逐行执行,就像批处理文件一样。问题是我不知道怎么做行执行部分。这是我的代码,我以为使用\ r \ n会欺骗控制台。但它只是显示了文件中的行列表。

if (tok[0] == "read" && length == 2)
{
  try
  {
    StreamReader tr = new StreamReader(@"C:\Users\Public\"+tok[1]+".txt");
    while (!tr.EndOfStream)
    {
      Console.WriteLine(tr.ReadLine());
    }
  }
  catch
  {
    Console.WriteLine("No such text file.\n");
  }
  Prompt();
}

如果我知道要搜索什么来解决我在谷歌的问题,我会的。但我不知道。

由于

编辑 - 我的程序是粗略的合成器。它采用440 5或415 2的形式输入。第一个数字是频率,第二个持续时间。我想要做的是读取我的代码所做的文本文件,并逐行执行声音信息,但它没有,因此我的问题。它在标准输入下完美无缺。

3 个答案:

答案 0 :(得分:2)

音频合成并不简单,曾经是

Console.Beep(frequency,duration);

但是使用PC扬声器的大多数系统都没有 - here's an example虽然使用DirectSound来实现接近你想要的东西。

要从文本文件中读取频率和持续时间,您可以使用类似的内容(在空格上拆分):

StreamReader tr = new StreamReader(@"test.txt");
while(!tr.EndOfStream)
{
    string[] parts = tr.ReadLine().Split(new[]{' '});
    int frequency = Convert.ToInt32(parts[0]);
    int duration = Convert.ToInt32(parts[1]);
}

答案 1 :(得分:1)

您应该加载代码并在运行时编译它。

查看以下示例:

编辑:

您应该使用Process.Start(cmd);在shell中执行命令。在这里,我发现了一些不错的例子:http://dotnetperls.com/process-start

答案 2 :(得分:1)

如果您的程序使用标准输入正常工作,只需将文本文件传递给它:

yourprogram.exe< TextFile.txt的

然后文本文件的内容将传递给标准输入的程序。