1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление

Вывод результата выполнения команды в переменную

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем Alien193, 5 июл 2011.

  1. Alien193

    Alien193 Гость

    Вот собственно функция, ExecuteDOSCommand, после выполнения dos команды получает результат её выполнения, т.е. то что выводится в консоли на экран.
    consoleoutput.pas добавляем в проект С++Builder
    и ставим #include "consoleoutput.hpp"
    Сами функции написаны на дельфи, я дельфи не знаю, поэтому разобраться в нем не могу.

    следующий код, самый простой

    Код (C++):
    ShowMessage(ExecuteDOSCommand("echo test"));
    Выводит иероглифы и квадратики. Что не так?
     

    Вложения:

    • dosoutput.rar
      Размер файла:
      2,1 КБ
      Просмотров:
      9
  2. az09az

    az09az Гость

    Спасибо за функцию, давно искал.

    Вывод происходит в кодировке cp886 (DOS). Ее надо сконвертировать в cp1251(win)

    Вот функции для c++ builder 6


    Код (Text):
    // из DOS в Windows
    String DosToWin(String St)
    {
    PChar Ch;
    Ch = StrAlloc(St.Length() + 1);
    OemToAnsi(St.c_str(), Ch);
    return Ch;
    }
    // из Windows в DOS
    String WinToDos(String St)
    {
    PChar Ch;
    Ch = StrAlloc(St.Length() + 1);
    AnsiToOem(St.c_str(), Ch);
    return Ch;
    }
    Так же можно перед выполнением комманды написать chcp1251 например
    ExecuteDosCommand("cmd /k chcp1251; echo a");
    как-то так...
     
  3. Alien193

    Alien193 Гость

    спасибо, у вас работают эти функции? кодирует нормально?
    у меня просто билдер 2009, функции ошибку выдают, а если переделать то не работает
     
Загрузка...

Поделиться этой страницей