2009-05-15 2 views
1

У меня небольшое консольное приложение Win32, которое по существу является тестовым жгутом. Я читаю данные, делаю некоторые обработки на нем и в настоящее время просто вывод некоторых номеров на консоль. Это не огромная проблема - я могу понять, как выглядят данные, но было бы гораздо легче проанализировать, был ли способ получить эту информацию в графике для каждого запуска программного обеспечения.Как создать вывод из консольного приложения C++ Win32?

Недавно я получал доступ к GNUPlot, но не могу найти простой способ получить данные, отправленные на него. Кто-нибудь пробовал это? .. или есть другое графическое приложение, которое я должен попробовать?

Excel и OO Calc - отличные инструменты, и я загрузил данные .csv в них для графического отображения данных много раз сам. Тем не менее, я надеялся, что вы сможете динамически передавать данные в графическое приложение, чтобы не закрывать/повторно открывать Excel и строить график каждый раз, когда я хочу посмотреть некоторые данные.

Я думаю, что вы можете передавать данные в GNUPlot (вот почему я упомянул об этом), но детали того, как это сделать, довольно скудны.

+0

На самом деле это не ответ, но не имеет COM-интерфейса, который вы могли бы использовать для подачи его данных? – Clay

ответ

1

Вам не нужно трогать VBA, чтобы сделать это

В Excel вы можете настроить подключение данных к файлу, он поддерживает много типов файлов, но CSV работает нормально.

  • Перейти к списку товаров
  • Вкладка Data
  • Нажмите Connections
  • Нажмите кнопку Добавить
  • выберите файл
  • перейти к свойствам соединения - снимите галочку запрос на имя файла
  • установите требуемый период.
  • закрыть соединения диалог
  • выбрать начальную ячейку для импорта данных - ячейки 1а на листе 2
  • нажмите существующие соединения
  • выбрать вас подключение данных
  • флип к worksheet1 добавить диаграмму и Hookup данные ,

график теперь будет обновляться автоматически

это Excel 2007 - но думаю, что старая версия была этим, и я думаю, что OO может сделать это в.

+0

+1> Похоже, это может сработать. Команды в excel 2000 немного отличаются, но я думаю, что я вижу, как управлять им. Похоже на приятное простое решение, которое можно было бы повторно использовать для будущей работы - фантастично :) –

5

Простой подход состоит в том, чтобы вывести данные из CSV, а затем импортировать их в электронную таблицу, такую ​​как Excel или OpenOffice, для выполнения графического рисования.

Edit: После вашего вопроса, я заинтересован в GNUPLOT себя - это самое простое описание его использования из командной строки, что я нашел: http://www.goldb.org/goldblog/CommentView,guid,f378e279-eaa5-4d85-b7d2-0339a7c72864.aspx

+0

Я использовал аналогичные подходы, но я надеялся на более динамичное решение, чтобы избежать необходимости загружать excel и строить график каждый раз. –

+0

Вы можете использовать небольшую автоматизацию и VBA из своего консольного приложения, чтобы указать Excel, какие данные читать и что с ним делать. – 2009-05-15 11:20:07

+0

Это интересная идея, о которой я не думал. Я не писал много VBA, хотя прошло много лет с тех пор, как я пробовал. Если у вас есть какие-либо ссылки для этого, они были бы очень благодарны! –

3

Никогда не стоит недооценивать силу Excel и .csv вывод данных.

Запись данных в CSV-файл формы C++ не очень сложна, и есть много статей о предмете, например: here или просто Google.

Excel может легко загрузить CSV, а затем вы можете просто использовать его для построения любых графиков, которые вам нужны. Это особенно полезно, если вам просто нужна быстрая визуальная проверка соответствия результатов и т. Д.

+0

Согласовано - я делаю это все время, но это не динамическое решение, после которого я был. Я немного пересмотрю свой вопрос ... –

1

Вы также можете посмотреть в XMGrace, который позволяет запускать его и управлять его dircetly из C/Fortran-программ, как показано here

+0

+1> Интересный; Я посмотрю на это. –

0

Excel полностью сценария в состоянии. Используйте макрорекордер, чтобы выяснить шаги. Создайте диаграмму на своем листе. Затем сохраните диаграмму, используя фильтр GIF.

Фактический импорт что-то вроде:

ActiveChart.Export FileName: = something_dot_gif, FILTERNAME: = "GIF"

0

Вы можете использовать MathGL - он может создавать окно (FLTK, GLUT или Qt) и отображать внутри. Также он имеет большой набор типов сюжетов и может работать в консоли.

Смежные вопросы