Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Прошу помощи - консольная утилита / 25 сообщений из 35, страница 1 из 2
03.05.2007, 19:03
    #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
04.05.2007, 09:42
    #34503987
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
вот пример консольного приложения,
а алгоритм нужный вам сами напишите

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

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

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

С уважением BETEPON
---------------------------
Ну вот собственно и ВСЕ.
Подпись:Смерть
...
Рейтинг: 0 / 0
04.05.2007, 14:21
    #34505093
Nikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
Код: plaintext
1.
2.
3.
4.
5.
If Command = "" then
    'выводим интерфейс
Else
    'парсим строку параметров и чего то с ними делаем
End If
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.12.2008, 16:21
    #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
10.12.2008, 16:27
    #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
10.12.2008, 16:28
    #35706000
Grayscale
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
Спасибо))) попробую))))
...
Рейтинг: 0 / 0
10.12.2008, 16:56
    #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
10.12.2008, 16:58
    #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
10.12.2008, 16:59
    #35706127
Grayscale
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
Да, выполняю из консоли... Это привязана?
...
Рейтинг: 0 / 0
10.12.2008, 17:00
    #35706133
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
нет
...
Рейтинг: 0 / 0
10.12.2008, 17:02
    #35706139
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
вот для затравки:
...
Рейтинг: 0 / 0
10.12.2008, 17:12
    #35706171
Grayscale
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
(((( Зачем мне столько всего? Я спрашиваю как получить хэндлер консоли в которой запущена программа а мне в ответ завод по переработке консолей...((( Не ужели нельзя проще?
...
Рейтинг: 0 / 0
10.12.2008, 17:12
    #35706174
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
мир не прост
...
Рейтинг: 0 / 0
10.12.2008, 17:14
    #35706179
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощи - консольная утилита
> Автор: Grayscale
> (((( Зачем мне столько всего? Я спрашиваю как получить хэндлер консоли в которой запущена программа а мне в ответ
> завод по переработке консолей...((( Не ужели нельзя проще?

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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