25.01.2020, 11:11 [+3 UTC]
в нашей команде: 4 166 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.80 (15.01.2020)
JS-v.1.35 | CSS-v.3.36

Общие новости:
06.01.2020, 22:45

Форум:
13.01.2020, 16:40

Последний вопрос:
24.01.2020, 12:36
Всего: 151479

Последний ответ:
24.01.2020, 20:57
Всего: 259687

Последняя рассылка:
24.01.2020, 21:46

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
15.08.2019, 18:19 »
dar777
Это самое лучшее решение! [вопрос № 196127, ответ № 278510]
28.09.2019, 15:20 »
dar777
Это самое лучшее решение! [вопрос № 196454, ответ № 278785]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 749
Gluck
Статус: Студент
Рейтинг: 360
solowey
Статус: Специалист
Рейтинг: 274

Перейти к консультации №:
 

Консультация онлайн # 72430
Раздел: • С / С++
Автор вопроса: DEVILL
Отправлена: 24.01.2007, 14:50
Поступило ответов: 3

Подскажите пожалуйста если зациклить фунуцию
создания директории (CreateDirectory()), то как можно
после каждого прохода цикла переписывать переменную
"Patch".В которой менять только имя файла, а путь
оставить прежним? Что-то типа "Patch++".
Что бы создавались директории :
New_Folder 1
New_Folder 2
New_Folder 3 , и так далее ?????
И еще, допустим создать директорию в только что
созданной и т.д.

Приложение:

Состояние: Консультация закрыта

Ответ # 138806 от Thread

Здравствуйте, DEVILL!
Ну введите счетчик повторений цикла, что-то вроде int count = 0; и вставте его в тело цикла. Далее нам нужно к строке "C:\\New_Folder"" прилепить значение счетчика, преобразованное в троку. Делаем это так:
char buffer[32];
sprintf(buffer, "C:\\New_Folder %d", count);
И делаем приведение типов:
LPCTSTR Patch = (LPCTSTR)buffer;


Консультировал: Thread
Дата отправки: 24.01.2007, 16:15

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 138813 от burbot

Здравствуйте, DEVILL!

По первому вопросу:

необходимо создать цикл с таким количеством проходов, сколько Вам нужно директорий первого уровня. В теле цикла формируем новую строку с именем директории исходя из заданного начального имени и счетчика цикла. Затем создаем директорию.

По второму вопросу:

в этом же цикле вызываем другую нашу функцию, которая и создает в только что созданной директории новую.

в приложении я набросал код, который решает Вашу ЧАСТНУЮ задачу. Это Вам в качестве примера.

Для того, чтобы создать универсальное решение, необходимо писать рекурсивную функцию, которой в качестве параметра передавать необходимый для создания путь. Эта функция должна последовательно от верхней до нижней перебрать все директории, присутствующие в этом пути, проверить их существование и, если они не существуют, то создать их.

Всего доброго.

ЗЫ: Вашу прагму argsused я из кода убрал, т.к. у меня не Borland C++. Также я переименовал переменные в соответствии с той нотацией, которую использую. Уж не обессудьте. Ну и все строки и символы я заключил в макрос TEXT(), который поможет Вам при компиляции одного и того же кода в ANSI и в UNICODE формате.

Приложение:


Консультировал: burbot
Дата отправки: 24.01.2007, 16:42

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, DEVILL!
Как вариант - ищешь в строке Patch последнее
вхождение символа обратной косой черты, т.е '\\'.
Если строка Patch заканчивается этим символом, тогда
истино *(Patch+strlen(Patch)-1)=='\\', иначе -
следующий символ в строке - это и исть само имя каталога.
И вот по этому адресу копируем новое имя каталога (strcpy) и вызываем
CreateDirectory(Patch,NULL) - создан новый каталог.
Чтобы создать подкаталог в уже существующем каталоге нуно
просто дополнить путь к нему в строке Patch.
Удачи!


Консультировал: kool
Дата отправки: 24.01.2007, 22:51

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13656 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.80 от 15.01.2020
Версия JS: 1.35 | Версия CSS: 3.36