Ru-Board.club
← Вернуться в раздел «Флейм»

» Считать данные.

Автор: Uido0Bdue
Дата сообщения: 28.08.2012 22:35
Есть программка "xdelta3-3.0.4-x86-32.exe" работающая из командной строки, которая позволяет построить разницу между двумя файлами.

Нужно как-то считать данные/поток на ходу, пока программа работает, из другой программы, как это можно примерно реализовать?
Нужно для "Индикатора процесса".
(на картинке отметил)

Автор: grbdv
Дата сообщения: 28.08.2012 22:42
Вывод в текстовый файл, потом в Ексель, к примеру, с разделителем ": "
Автор: XPEHOMETP
Дата сообщения: 28.08.2012 22:50
1. Переадресовать вывод в файл. Типа: "имя программы" (с необходимыми параметрами) > "имя файла".

2. Запускать программу не в стандартном окне консоли, а в более продвинутой проге-заменителе, которая позволяет копировать консольный вывод в стандартный буфер Винды. Бесплатный вариант - Console2
Автор: Uido0Bdue
Дата сообщения: 28.08.2012 23:00
XPEHOMETP
grbdv

Нужно как-то считать именно переменную, которая выдаёт "xdelta3-3.0.4-x86-32" [8.00..112 (%s)]
Автор: grbdv
Дата сообщения: 28.08.2012 23:11
Uido0Bdue
п. 2.20.3. главы VIII Соглашения по использованию
Каждый раз вычитывать, что ты изменил в оригинальном посте?

А маны курить не пробовал? У нее даже API есть...
Автор: Uido0Bdue
Дата сообщения: 28.08.2012 23:26
grbdv

За изм. ссори...
Не силён в программировании С++, С (знаю что все исходники есть)

Если несложно объясни, как это можно сделать?

Автор: grbdv
Дата сообщения: 28.08.2012 23:35

Цитата:
За изм. ссори...

Да ладно, сорри :) Это же в твоих интересах в первую очередь.


Цитата:
Если несложно объясни, как это можно сделать?

Не-е :) Я совсем не намекал на то, что это в манах есть и надо просто найти.
Просто я предположил, что вдруг ты не видел доки...

Т.е. тебе надо не конченый результат проанализировать, а в процессе создания файла отчета считывать каждую строку? Так?
Автор: Uido0Bdue
Дата сообщения: 28.08.2012 23:41
grbdv

Скорее не строку, а сам адрес в памяти, который выдаёт эти значения, как то так...
Например как во всяких играх, где есть адрес "с патронами" и указатель указывающий на этот адрес.
Я прост незнаком с консольными программами, и не знаю как там всё устроено, если это очень сложно, тогда жаль
Автор: grbdv
Дата сообщения: 28.08.2012 23:47
Uido0Bdue
Не-е. Мне это не по зубам :(
Спроси в топике по C++.
Автор: mex3
Дата сообщения: 29.08.2012 09:21
XPEHOMETP

Цитата:
Запускать программу не в стандартном окне консоли, а в более продвинутой проге-заменителе, которая позволяет копировать консольный вывод в стандартный буфер Винды. Бесплатный вариант - Console2

Хоть в данном случае это и не поможет, но рекомендую попробовать ConEmu

Uido0Bdue
Можно перенаправить ее вывод в файл, типа
xdelta3 ... > cmp.log
и анализировать последнюю строку в ней.
Хотя, мне не особо понятно, если нужно показать индикатор прогресса, значит должна быть какая-то программа, которая будет его "показывать". Тогда эта программа и должна смотреть в консоль или запускать утилиту с перенаправлением в пайп, из которого уже считывать данные.
Автор: grbdv
Дата сообщения: 29.08.2012 09:41
mex3
Цитата:
и анализировать последнюю строку в ней.

Посмотри на время анализа (если это оно, правый столбец) - иногда всего чуть больше 10 мсек. Т.е. надо перечитывать через 5 мсек, как минимум. Не получится... Да и коряво это.

Добавлено:
Он уже переехал в топик C++

Страницы: 1

Предыдущая тема: Устраиваюсь на работу в Донецке


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.