Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 843
от 08.09.2007, 01:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 501, Экспертов: 69
В номере:Вопросов: 5, Ответов: 10


Вопрос № 100503: Здравствуйте уважаемые эксперты. Помогите, пожалуйста, решить следующую задачу: 1. Необходимо найти все диски (в частности их буквы, т.е. также, как и в проводнике, но это мне не для проводника). 2. В каждом из дисков надо найти все ...
Вопрос № 100519: Здравствуйте! Скажите пожалуйста а какими функциями можно запускать файлы. Я знаю только ShellExecute(...)...
Вопрос № 100530: Здравствуйте, уважаемые эксперты. Наткнулся на статью ( http://rsdn.ru/article/openoffice/ooautomation.xml ) в которой расказывается как можно обратиться к openoffice через com интерфейс в windows...Возник вопрос возможно ли каким-то образом (или ана...
Вопрос № 100559: Здравствуйте эксперты!Скажите где можно скачать справку по функциям С++ как например в Builder 6 (желательно в формате chm или hlp) Заранее спасибо...
Вопрос № 100570: В консольном приложении в С++ Builder у меня вместо текста ф№я, помогите, что не так, вроде по началу было нормально. Может дело в настройках среды?!, я там по лазил перед этим....

Вопрос № 100.503
Здравствуйте уважаемые эксперты.
Помогите, пожалуйста, решить следующую задачу:
1. Необходимо найти все диски (в частности их буквы, т.е.
также, как и в проводнике, но это мне не для проводника).
2. В каждом из дисков надо найти все папки.
Среда Visual C++ 6.0, желательно средствами MFC.
2а. Возможно Вы знаете, где почитать о функциях работы с
дисками, папками, файлами (кроме World C++ и FirstSteps).
Заранее благодарен за ответы.
Отправлен: 02.09.2007, 01:30
Вопрос задал: Лис Иван (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: din
Здравствуйте, Лис Иван!
1. Диски Вам вернет функция WinAPI GetLogicalDriveStrings она описана в Windows.h.
2. Используйте для этого класс CFileFind. В приложении пример взятый с официального MSDN.
2а. Кроме MSDN ничего не могу посоветовать.

P.S. Я не программирую на VS и не работал с MFC, просто иногда приходится решать мелкие задачи.

Приложение:

---------
Есть только одно зло - невежество, и только одно благо - знания

Ответ отправил: din (статус: Практикант)
Ответ отправлен: 02.09.2007, 10:33

Отвечает: Aristos
Здравствуйте, Лис Иван!

Подскажу как это сделать средвами WinAPI.
1. Вам поможет функция _GetLogicalDrives() Она возврашает битовую маску присутствующих в системе дисков. А функция GetDriveType() позволяет определить тип найденного "диска". Вообще можно опросить тип для всех букв (A-Z), но _getdrives позволяет сократить количество вариантов.

2. Тут подойдут функции FindFirstFile/FindNextFile.

2a. Посмотрите помощь в MSDN по приведенным функциям, там должны быть ссылки на общие разделы по функциям и методам работы с дисками, разделами, файлами и т.д.

Приложение:

Ответ отправил: Aristos (статус: 5-ый класс)
Ответ отправлен: 02.09.2007, 18:42

Отвечает: Sema
Здравствуйте, Лис Иван!

Вот код ответа на Ваш первый вопрос.

CString str;
char str1[100], *buf, str2[2];
GetLogicalDriveStrings(100,str1);
int i = 0,b = 0;
buf = str1;
while (str1[i] != NULL && str1[i+1] != NULL){

if (GetDriveType(strcpy(str2,buf)) == DRIVE_FIXED){
b++;
str = str + str2;
}
i = i + 4;
buf = &str1[i];
}
mass = str;
count = b;

данный код получает строку в которой перечислены все разделы жесткого диска...(переменная mass) и яисло разделов на ЖД (count)

Этот код это ответ на Ваш второй вопрос

Page(CString pathStr){

CFileFind finder;
CString str;
HTREEITEM hItem = NULL;

BOOL bWorking = finder.FindFile(pathStr);

while (bWorking)
{
bWorking = finder.FindNextFile();


if (finder.IsDots())
continue;
CString str = finder.GetFileName();
CString str1 = finder.GetFilePath();
// If it's a directory, recursively search it
if (finder.IsDirectory())
{
pathStr = finder.GetFilePath()+ "\*.*";
Page(pathStr,index ++,hItem);
}
}
finder.Close();
}

передаете в функцию имя логического диска и он его отсканирует...
Ответ отправил: Sema (статус: 3-ий класс)
Ответ отправлен: 03.09.2007, 12:13

Отвечает: Maxim V.G.
Здравствуйте, Лис Иван!
Отвечу на вопрос 2а:
http://www.realcoding.net/article/view/121 - WinAPI. Функции работы с файлами
http://www.realcoding.net/article/view/122 - WinAPI. Функции работы с файлами.
http://www.realcoding.net/article/view/120 - WinAPI. Функции работы с файлами.
И конечно же
www.msdn.com
---------
Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 4-ый класс)
Ответ отправлен: 03.09.2007, 15:46


Вопрос № 100.519
Здравствуйте!
Скажите пожалуйста а какими функциями можно запускать файлы. Я знаю только ShellExecute(...)
Отправлен: 02.09.2007, 10:45
Вопрос задал: Tatarin (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sov
Здравствуйте, Tatarin!
Есть еще две
WinExec
CreateProcess
Ответ отправил: Sov (статус: 6-ой класс)
Ответ отправлен: 02.09.2007, 11:46

Отвечает: Aristos
Здравствуйте, Tatarin!

Еще есть функция CreateProcess(). Пример использования в приложении.

Приложение:

Ответ отправил: Aristos (статус: 5-ый класс)
Ответ отправлен: 02.09.2007, 18:51


Вопрос № 100.530
Здравствуйте, уважаемые эксперты. Наткнулся на статью ( http://rsdn.ru/article/openoffice/ooautomation.xml ) в которой расказывается как можно обратиться к openoffice через com интерфейс в windows...Возник вопрос возможно ли каким-то образом (или аналогичным ) обратиться к openoffice в linux.Буду рад любым статьям или примерам. Заранее спасибо.
Отправлен: 02.09.2007, 11:42
Вопрос задал: Иван Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Shurka
Здравствуйте, Иван Николаевич!
Linux ни в какой мере не поддерживает COM
Ответ отправил: Shurka (статус: 3-ий класс)
Ответ отправлен: 02.09.2007, 16:40


Вопрос № 100.559
Здравствуйте эксперты!Скажите где можно скачать справку по функциям С++ как например
в Builder 6 (желательно в формате chm или hlp) Заранее спасибо
Отправлен: 02.09.2007, 18:39
Вопрос задал: Hunter20 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Boriss
Здравствуйте, Hunter20!
Отвечу так же, как на № 241
вот здесь достаточно современное есть
http://e-sementsov.narod.ru/download.htm
рекомендую BookC.chm и BiblFunc.chm
:)) Спасибо Евгению Леонидовичу Семенцову
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: mte
WWW: Программирование на Паскале
----
Ответ отправлен: 04.09.2007, 15:30


Вопрос № 100.570
В консольном приложении в С++ Builder у меня вместо текста ф№я, помогите, что не так, вроде по началу было нормально. Может дело в настройках среды?!, я там по лазил перед этим.
Отправлен: 02.09.2007, 20:43
Вопрос задал: Пупкин вася Леопольдович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Aristos
Здравствуйте, Пупкин вася Леопольдович!

Разница в кодировках. В окне редактора у вас cp-1251, а в консольном окне cp-866. Попробуйте функции OemToChar и CharToOem для преобразования строки перед выводом.
Ответ отправил: Aristos (статус: 5-ый класс)
Ответ отправлен: 02.09.2007, 20:59

Отвечает: Терсков Сергей
Здравствуйте, Пупкин вася Леопольдович!
Популярный вопрос на портале... Вот подобный - № 98301. В ответе есть ссылка на статью с сайта rsdn.ru - "Почему вместо русских букв в консольном приложении выводится мусор?". В ней подробно описывается сама проблема и средства избавления от нее.
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 03.09.2007, 03:49


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.58 от 30.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное