powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Прошу помощи - консольная утилита
25 сообщений из 35, страница 1 из 2
Прошу помощи - консольная утилита
    #34503345
betepon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые знатоки. Помогите пожалуйста в написании консольной утилиты
1. Утилита не должна делать окон
2. Должна вызываться из командной строки.
3. Как входящие параметры - должна принимать два полных пути к фалам
Путь1 - где находиться и как называется исходный файл
Путь2 - где находиться и как будет называться выходящий файл
Кроме того в папке с программой будут находиться 2 файла : File1.txt и File2.txt

Программа должна делать следующее действие : Брать текстовый файл по Путь1, находить в нем текст "<head" и вставлять после этой строки, где найдено "<head", текст из File1.txt (текст может быть многострочным), находить текст "<body" и вставлять после этой строки, где найдено "<body", текст из File2.txt (текст может быть многострочным).

Полученный модифицированный файл уложить по пути и с именем Путь2.

Прошу Вас Помочь написать это, так как в VB, а тем более в консоли я ноль. Немного разбираюсь в VBA.

С уважением BETEPON
---------------------------
Ну вот собственно и ВСЕ.
Подпись:Смерть
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #34503987
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот пример консольного приложения,
а алгоритм нужный вам сами напишите

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #34504870
betepon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважамый(мая) HandKot , попробуем сделать проще.

Вот программа, которую я написал (кстати первую) на Visual Basic (до этого только на VBA).
Как мне из нее сделать консольную программу, чтобы поля Text1 и Text2 брались из консоли, и если вызов идет просто inscod.exe , тогда запуск был бы с окном, а если с параметрами
inscod.exe C:\1.htm C:\C1\1.htm тогда окна бы не было, а программа выполнила бы работу (процедура Main) и закрылась

С уважением BETEPON
---------------------------
Ну вот собственно и ВСЕ.
Подпись:Смерть
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #34504918
betepon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже я неправильно выразился
Нужно чтение параметров из коммандной строки
Если коммандная строка пуста - значит выводить интерфейс.
Если не пуста - принимаем 2 параметра, производим обработку и выходим

С уважением BETEPON
---------------------------
Ну вот собственно и ВСЕ.
Подпись:Смерть
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #34505093
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
If Command = "" then
    'выводим интерфейс
Else
    'парсим строку параметров и чего то с ними делаем
End If
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Прошу помощи - консольная утилита
    #35705969
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не ужто нет способа попроще? мне нужно просто вывести строку в консоль...
Насколько понимаю должно быть так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, pNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Private Const STD_OUTPUT_HANDLE = - 11 &

Private hnd As Long

Public Function writeConsole(s As String)
Dim result As Long
    If hnd =  0  Then hnd = GetStdHandle(STD_OUTPUT_HANDLE)
    WriteFile hnd, ByVal s, Len(s), result,  0 
End Function

Но не работает...
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35705995
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> А не ужто нет способа попроще? мне нужно просто вывести строку в консоль...
> Насколько понимаю должно быть так
>
> Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite
> As Long, pNumberOfBytesWritten As Long, lpOverlapped As Any) As Long

нет не WriteFile, а
Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" _
(ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal _
nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, _
lpReserved As Any) As Long

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706000
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо))) попробую))))
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706103
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает... Счас делаю так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Option Explicit
Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long
Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Const STD_OUTPUT_HANDLE = - 11 &

Private hnd As Long

Public Function WriteCon(s As String)
Dim result As Long
    If hnd =  0  Then hnd = GetStdHandle(STD_OUTPUT_HANDLE)
    WriteConsole hnd, ByVal s, Len(s), result,  0 
End Function

...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706122
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayscaleНе работает... Счас делаю так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Option Explicit
Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long
Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Const STD_OUTPUT_HANDLE = - 11 &

Private hnd As Long

Public Function WriteCon(s As String)
Dim result As Long
    If hnd =  0  Then hnd = GetStdHandle(STD_OUTPUT_HANDLE)
    WriteConsole hnd, ByVal s, Len(s), result,  0 
End Function



у тебя консоль уже привязана(открыта) твоим приложением?
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706127
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, выполняю из консоли... Это привязана?
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706133
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706139
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот для затравки:
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706171
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(((( Зачем мне столько всего? Я спрашиваю как получить хэндлер консоли в которой запущена программа а мне в ответ завод по переработке консолей...((( Не ужели нельзя проще?
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706174
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мир не прост
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706179
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> (((( Зачем мне столько всего? Я спрашиваю как получить хэндлер консоли в которой запущена программа а мне в ответ
> завод по переработке консолей...((( Не ужели нельзя проще?

http://support.microsoft.com/kb/171654

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706180
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос все ще в силе... Нужен рациональный способ соответствуюзий поставленной задаче... Задача вывести "Hello word!" в консоль из которой вызвано приложение с минимумом затрат...
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706186
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другой разговор))) спасибо!)))
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706201
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> Вопрос все ще в силе... Нужен рациональный способ соответствуюзий поставленной задаче... Задача вывести "Hello
> word!" в консоль из которой вызвано приложение
с минимумом затрат...

Хотя учитывая задачу, правильнее изучить код Konst_One и доработать под свои нужды.
это самый простой правильный способ

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706205
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь, ну зачем же так быстро выложил, должен же человек хоть немного сам подумать ;)
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706223
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Konst_One
> Игорь, ну зачем же так быстро выложил, должен же человек хоть немного сам подумать ;)


Да просто в моем примере берётся просто стандартная консоль, а в твоем именно та, которая определена из вызвавшего
процеса.

Хотя учитывая специфику "Хелло ворд", посыпаю голову пеплом, испортил воспитательный момент :D

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706298
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть несколько вариантов решения задачи.
1. Это я погружаюсь в изучение пайпов виндовых хэндлеров и прочей прочей, работа над чем в общем-то несоизмерима больше стоимости решения (вывод 1 строки), и в итоге нахожу решение. В этом случае достаточно написать в гугле api и console, и может быть, после этого выяснить неясные моменты тут, хотя вряд-ли они остануться.
2. Задать на форуме конкретный вопрос, который множество раз уже решался, получить конкретный ответ запомнить и сделать (самый интересный вариант для работодателя).
3. Найти другое более дешевое решение если ни один из вариантов не проходит.

А вы меня воспитывать... Ну зачем мне сейчас разбираться в 2х сотнях строк констант и API когда нужно-то написать "неправильный параметр"? Можно конечно привести справочники ссылки, но это как раз все то чего и так пруд пруди, а вот конкретной информации слишком мало, именно по этому существуют форумы и прочая прочая прочая... Неужели действиельно складывается впечатление, что я задавая вопрос нуждаюсь в ссылки на талмуды литературы... По мне так sql.ru и примечателен тем что на быстрый вопрос тут дается быстрый ответ, если не находится любителей пополемизировать, да по... хвастаться своими знаниями...))))
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706317
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ответ вам дали и даже больше. просто не всегда очевидно преимущество "сложного" ответа при достаточно "простом" вопросе, как вам кажется.
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706329
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> А вы меня воспитывать...

Жалко, по VBStreets у меня, о тебе было другое мнение. :(

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Прошу помощи - консольная утилита
    #35706349
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня нет на VBStreets))))
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Прошу помощи - консольная утилита
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]