Выполнить строку в текстовом файле - PullRequest
0 голосов
/ 15 января 2011

У меня есть программа, которая читает текстовые файлы, заполненные кодом, предназначенным для построчного выполнения программой, например, командный файл.Проблема в том, что я не знаю, как выполнить часть, выполняющую строку.Вот мой код, я думал, что использование \ r обманет консоль.Но он просто показывает мне список строк в файле.

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();
}

Если бы я знал, что искать, чтобы исправить мою проблему в Google, я бы это сделал.Но я понятия не имею.

Спасибо

РЕДАКТИРОВАТЬ - Моя программа - грубый синтезатор.Он принимает входные данные в виде 440 5 или 415 2. Первое число - это частота, а второе - длительность.Что я хочу сделать, так это читать текстовые файлы, что делает мой код, и построчно выполнять звуковую информацию, чего не происходит, отсюда и мой вопрос.Он отлично работает со стандартного ввода.

Ответы [ 3 ]

2 голосов
/ 15 января 2011

Синтез звука не является простым, раньше было

Console.Beep(frequency,duration);

, но при этом используется динамик ПК, которого в большинстве систем больше нет - вот пример , хотя с помощью 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 голос
/ 15 января 2011

Если ваша программа работает нормально, используя стандартный ввод, просто передайте ей текстовый файл следующим образом:

yourprogram.exe

Затем содержимое текстового файла будет переданок вашей программе на стандартном вводе.

1 голос
/ 15 января 2011

Вы должны загрузить свой код и скомпилировать его во время выполнения.

Проверьте следующие примеры:

РЕДАКТИРОВАТЬ:

Вы должны использовать Process.Start(cmd); для выполнения команд в оболочке.Здесь я нашел несколько хороших примеров: http://dotnetperls.com/process-start

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...