Конференция "KOL" » Перехват инфы из консольки
 
  • MTsv DN (07.04.08 21:53) [0]
    Всем привет...

    Вопрос скорей всего надо было в раздел API написать, просто семпл на KOL...да и эта ветка роднее как-то ;)

    Вот проект wav2flac: http://ifolder.ru/6060462
    Загвоздка в следующем. Не могу во время конвертации считывать инфу из StdOut консольки flac.exe. Вот заканчивается конвертация и весь StdOut доступен, а во время работы нет... Проект простой, от Вас требуется только добавить WAV-файл (44.1kHz х 16bits х 2ch. Лучше больше 30 сек, чтобы StdOut несколько раз обновлялся)...

    Помогите, у кого есть какие идеи... Как считывать StdOut во время работы консольки?..
    Спасибо...
  • Дмитрий К © (07.04.08 22:52) [1]
    wav2flac в отдельном потоке
  • mdw © (07.04.08 23:13) [2]
    Хорошая реализация есть в JVCL (Пример: при установке ловится то что компилятор выдает и преобразуется в аналог окна компиляции делфи). Могу кинуть пример оболочки для делфиского компилятора (я так новые версии KOL+все библиотеки собираю), оно на кол написано. Если нужно свистни завтра в аску после 11, раньше не буду на работе (детеныш заболел, с утра занимаюсь обеспечением лекарствами и другими необходимыми  вещами;) ).
  • mdw © (07.04.08 23:30) [3]
    Кстати, могу ошибаться, но на вскидку для BASS вроде есть поддержка flac, и там же есть и запись в wav, а по качеству BASS очень даже (по крайней мере лучше пресловутого винампа)... Посмотри, может подойдет? Я с полгода назад под КОЛ даже оболочку наваял, по мелочам не доделал слегка правда (типа поддержка плагинов винампа). Если нужно кину.
  • mdw © (07.04.08 23:32) [4]
    Упс. Не догнал сперва, тебе же наоборот в flac нужно. Предыдущий пост отменяется.
  • MTsv DN (08.04.08 09:03) [5]
    > wav2flac в отдельном потоке
    Нет в одном. Просто Гугл мне пример нашел на С, а я его перегнал в паскаль... Кстати, проект я приложил, можно было и посмотреть. Весит он всего 99 кило (вместе с flac.exe)
  • MTsv DN (08.04.08 09:15) [6]
    > wav2flac в отдельном потоке
    Разнес в 2 потока. 1ый - CreateProcess; 2ой - считывание из StdOut. Разницы нет. Сначала происходит конвертация, потом заполняется Memo. Могу выложить и этот вариант...
  • Дмитрий К © (08.04.08 09:38) [7]
    А если считывать по 1 символу?
  • MTsv DN (08.04.08 10:05) [8]
    > А если считывать по 1 символу?
    А разница-то по 1024 или по 1??? Смысл в том, что пока процесс конвертации не закончится:
       PeekNamedPipe(read_stdout, @buf[0], SizeOf(buf), @bread, @avail, nil);
       //Проверяем, есть ли данные для чтения в stdout
       if bread <> 0 then


    bread - равен 0. И только потом я получаю доступ к StdOut.

    P.S. Попробовал и по 1 байту. Без разницы.
  • MTsv DN (08.04.08 10:12) [9]
    Я та понимаю, что у меня каких-то прав не хватает... Но вот каких?
  • Дмитрий К © (08.04.08 13:51) [10]
 
Конференция "KOL" » Перехват инфы из консольки
Есть новые Нет новых   [134431   +14][b:0][p:0.001]