Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для MuhammadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.07.2017
    Сообщений
    19
    Репутация:
    1 ±

    И снова вопрос по pawncc.exe C#

    Добрый день
    не давно на форуме создавал тему как скомпилировать определённый файл
    Дело в том что при нормальной компиляции всё пишет нормально
    Но если в коде допустить ошибку то по чему-то в диалог возвращает токо количество ошибок
    Как можно это исправить?
    Код:
    Process p = new Process();
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.FileName = @"pawno\pawncc.exe";
    p.StartInfo.Arguments = string.Format("-iinclude {0} -;+ -v2 -d3 -\\)+", files);
    p.Start();
    string output = p.StandardOutput.ReadToEnd();
    MessageBox.Show(output);
    Последний раз редактировалось MuhammadPawn; 23.07.2017 в 12:40.

  2. #2
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Что говорит свойство StandardError?

    - - - Добавлено - - -

    Как вариант. Писал на коленке.
    PHP код:
    Process ProcessCompile = new Process();
    ProcessStartInfo ProcessCompileInfo = new ProcessStartInfo(@"pawno\pawncc.exe"string.Format("-iinclude {0} -;+ -r -w 203 -d3 -O2 -\\)+"files) );

    ProcessCompileInfo.UseShellExecute false;
    ProcessCompileInfo.RedirectStandardError true;
    ProcessCompile.StartInfo ProcessCompileInfo;
    ProcessCompile.Start();

    StreamReader reader ProcessCompile.StandardError;
    Console.WriteLinereader.ReadLine() );
    reader.Close(); 
    Последний раз редактировалось Fallen A.; 23.07.2017 в 15:28.

  3. Пользователь сказал cпасибо:
    MuhammadPawn (23.07.2017)
  4. #3
    Аватар для MuhammadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.07.2017
    Сообщений
    19
    Репутация:
    1 ±
    Цитата Сообщение от Fallen A. Посмотреть сообщение
    Что говорит свойство StandardError?

    - - - Добавлено - - -

    Как вариант. Писал на коленке.
    PHP код:
    Process ProcessCompile = new Process();
    ProcessStartInfo ProcessCompileInfo = new ProcessStartInfo(@"pawno\pawncc.exe"string.Format("-iinclude {0} -;+ -r -w 203 -d3 -O2 -\\)+"files) );

    ProcessCompileInfo.UseShellExecute false;
    ProcessCompileInfo.RedirectStandardError true;
    ProcessCompile.StartInfo ProcessCompileInfo;
    ProcessCompile.Start();

    StreamReader reader ProcessCompile.StandardError;
    Console.WriteLinereader.ReadLine() );
    reader.Close(); 
    а как исправить вот к примеру у меня есть путь с русским именем

    Код HTML:
    C:\Users\Виктор\Desktop\pawntest.pwn
    то он пишет типо нет файла pawn.p закинул на диск C и всё норм компилировало

  5. #4
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    С путями сложнее.

    По теме: ошибки теперь показывает?

  6. #5
    Аватар для MuhammadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.07.2017
    Сообщений
    19
    Репутация:
    1 ±
    Цитата Сообщение от Fallen A. Посмотреть сообщение
    С путями сложнее.

    По теме: ошибки теперь показывает?
    Ошибки да но с путём проблема ;c

  7. #6
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    А никак вы путь не сделаете, если там используется кириллица. Это багфитча такая.
    Можно клонировать файл в директорию без кириллицы и там работать с ним.
    Если можно передать в pawncc текст скрипта - еще проще, считываете в кодировке 1251, благо при считывании пути к файлу File.ReadAllText не ругается на кириллицу в пути.

  8. #7
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от Seregamil Посмотреть сообщение
    А никак вы путь не сделаете, если там используется кириллица. Это багфитча такая.
    Можно клонировать файл в директорию без кириллицы и там работать с ним.
    Если можно передать в pawncc текст скрипта - еще проще, считываете в кодировке 1251, благо при считывании пути к файлу File.ReadAllText не ругается на кириллицу в пути.
    Не знаю, как работает этот самый "путь", но у c# с путями проблем нет. Можно делать через temp файл.

  9. #8
    Аватар для MuhammadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.07.2017
    Сообщений
    19
    Репутация:
    1 ±
    Я так понимаю есть токо решение перемещать файл к примеру на диск C а после компиляции обратно по указаному пути
    P.S щас в самом компиляторе увидел что за место русского пути он пишет на какой-то другой кодировке (CP1252)

    и да если компилировать с ошибками в коде всё норм ошибки показывает вот если без ошибок скомпилировать


    Щас ещё нашол кое-что если к примеру в папке которой есть пробел он считает за файл
    к примеру идёт Pawn Test\test.pwn то он в компиляторе пишет первое слово из папки
    Последний раз редактировалось MuhammadPawn; 24.07.2017 в 04:40.

  10. #9
    Аватар для MuhammadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.07.2017
    Сообщений
    19
    Репутация:
    1 ±
    Исправил путь делаю через \"{0}\"

  11. #10
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Ощущение, будто мы здесь все должны делать за тебя.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •