![]() |
|
Модераторы: Akina |
![]()
|
|
| Jr13san |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
Привет всем, кто на форуме.
У меня возникла проблемка с "Командной строкой". Для примера код:
Так вот, я не знаю как передать значение командной строки. Напимер, при данной команде мы получим список папок и файлов на диске "C". И как вот передать в Vb6 через msgbox, наример, значение 2-ой строки в "Командной строке". Кто знает как, помогите пожалуйста. |
|||
|
||||
| DrBoom |
|
|||
|
QIP VB-SDK Developer ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 19.2.2006 Репутация: нет Всего: нет |
Не очень понятна задача поставленная Вами. Возникает вопрос, за чем? -- когда и так почти для каждой функции в командной строки есть в WinAPI аналогичные функции, воспользоваться которыми можно спокойно. Более того, чтобы получить список папок и файлов, говоря о Вашем примере, достаточно воспользоваться вообще встроенной в VB6 функцией Dir()
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Вместо термина "командная строка" следует использовать термин "окно ДОС-сеанса". Во избежание...
Перенаправить вывод вызываемой команды в файл, а по завершении прочитать его и взять требуемое.
Это немного не так - в частности встроенная функция Dir() даёт меньше информации, чем команда Dir в сеансе ДОС. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Jr13san |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
[*]Akina, скажите тогда как перенаправить в файл данную 2-ю строку. Я не очень в этом деле шарю.
DrBoom, мне уже как то сказали, чтобы я воспользовался данной функцией, но как я понял, что она предназначена для проверки существования папки, а не для вывода их.... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Перенаправить ВСЁ. А потом прочитать из него строку № 2.
А справку почитать не пробовал? зря... не пришлось бы такую [censored] писАть... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Jr13san |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
||||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Просто отдаёт имена подпапок из текущей или указанной папки по одной.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| DrBoom |
|
||||
|
QIP VB-SDK Developer ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 19.2.2006 Репутация: нет Всего: нет |
Akina, ну этого я не отрицаю, но всё-таки можно же получить нужную информацию и другими способами Я просто пытаюсь понять, что нужно топикстратеру, получить папки или же всё-таки исполнить свою навязчивую идею\мечту и получить именно строку из окна DOC-сеанса
Смешно, ей Богу. А Гугл Вам по поводу этой функции тоже так Вам сказал? Вообще это функция может список и файлов выдать Вам. Стоит только захотеть ЗЫ. По поводу получения папок из Dir(). Чтобы это сделать: 1. Вызываете первый раз функцию, указав нужную папку: она возвращает первый файл\папку. 2. Далее вызываете эту функцию до тех пор пока она не вернет пустую строку. Если же не пустая строка -- это следующий файл\папка. 3. Попробуйте для лучшего достижения эффекта поколдовать со вторым параметром этой функции, когда будете вызывать её первый раз. |
||||
|
|||||
| Jr13san |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
(1)данная команда выводит данные из файла в "окно ДОС-сеанса":
sort<C:\file.txt (2)А эта команда записывает данные функции "Dir" в файл: dir "E:\">c:\file.txt Я пробовал записать данные в файл, используя (2). Затем открываю этот файл а там тоже прикол... и он заключается в том, что русские буквы записываются в виде какой-то "кракозяблы". Идём дальше... Проверяю команду (1) в "окне ДОС-сеанса" и она работает как надо. Всё выводит норм. Можно сделать вывод, что сам интерпретатор командных строк как-то кодирует текст(если использовать (2)), а затем декодирует его(если использовать (1)). AkelPad открывает нормально только через кодировку DOS-866. Но не у всех есть этот AkelPad, да и через него я не знаю как считать данные в Vb6. Нужна декодировка "DOS-866" на VB6. У себя в исходниках я не нашел... Я даже не знаю что и делать. Не знаю можно ли здесь это написать: И прикол ещё в том, что я так и не додумался как вывести список папок спомощью функции "Dir". Может быть лучше будет её использовать а не "окно ДОС-сеанса"? DrBoom, покажите простенький пример на вывод папок ,например, в "C:\Program Files\". Добавлено через 7 минут и 21 секунду Не хотел рассказывать всю проблему сначала, но придётся... Вобщем я уже как-то создавал тему про "Unavailable objects" и так её не решил, потому что прогу, которая ищет данные файлы, нельзя выкладывать на форум. Так вот предположим, что прога нашла эту папку(делаю через fso), и прога не возвращает имя этого "Unavailable objects". Прикол в том, что fso не видит имя папки, а то, что она существует - видит.=) Вот я и нашел выход в Dos-сеансе. |
|||
|
||||
| DrBoom |
|
||||
|
QIP VB-SDK Developer ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 19.2.2006 Репутация: нет Всего: нет |
По просьбе трудящихся:
В этом примере Вам выдаст список всех файлов и папок (в т.ч. "." и "..") в указанной папке (в параметре Path). Однако, если убрать параметр vbDirectory при первом вызове Dir(), то получите только список файлов. "Вычесть" значения из массива ненужны труда не составит, думаю. Т.ж. попробуйте ещё поэкспериментировать со 2-м параметром упомянутой функции. |
||||
|
|||||
| Jr13san |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
DrBoom, Спасиьбо, я посмотрю и изучу ваш код...
Добавлено через 50 секунд Разобрался с функцией "Dir()" Но всё таки, так как тема открыта, нужно её завершить. Я тут нашёл материал по теме, но никак не пойму как Api-Функция работает. А именно: как загрузить "Dos" текст в переменную Материал: Если Вам нужно конвертировать текст формата DOS в Windows (1251), то в API есть на этот случай хорошая функция: OemToChar. Объявляется она так:
Используют её следующим образом:
|
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Неверно. Необходимо до вызова API-функции зарезервировать место под возвращаемый текст.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Jr13san |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
А как заставить её работать?
|
|||
|
||||
| Jr13san |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
Мне интересно как можно засунуть DOS текст в переменную l_sSource?
Через функцию Open .. for..as ..? |
|||
|
||||
| Jr13san |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 29.7.2008 Где: г. Павлово Репутация: нет Всего: нет |
ОК. Разобрался.
Всем Спасибо за помощь! |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |