Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 19:57   #1
Drakulov
Пользователь
 
Аватар для Drakulov
 
Регистрация: 02.04.2009
Сообщений: 40
По умолчанию Создание новых папок как в Windows=)

Всем привет! Вот такая задачка:
Нужно сделать такую программу, что бы при нажатии на кнопку на диске С:\ создавалась папка test1, при следующем нажатие на эту же кнопку создавалась папка test2 и т.д.

Пытался, пытался... не получилось. Пожалуйста, помогите!

Вот что сделал:
Код:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
ui, ut, tt:integer;
poslsimvl:char;  //последний символ
uy1, uy2, uy3, u:string;
begin
ui:=0;
ut:=0;

u:='C:\test1';
if DirectoryExists(u) then
begin          //1
For ui:=1 to length(u) do
begin     //0
ut:=ut+1;
end;    //0

poslsimvl:=u[ut];
uy3:=u;
delete(uy3, ut, ut);
uy1:=poslsimvl;
tt:=strtoint(uy1);
uy2:=inttostr(tt);
uy3:=uy3 + uy2;
CreateDir(uy3)
end     //1
else
createDir('C:\test1');
end;

Последний раз редактировалось Drakulov; 16.02.2010 в 20:07.
Drakulov вне форума Ответить с цитированием
Старый 16.02.2010, 20:21   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

А не проще так:
- создаем переменную dirName типа string со значением "C:\test"
- создаем переменную index типа int со значением 1
- затем цикл while
* пока папка с именем dirName + index существует
** index := index + 1;
- создаем папку с именем dirName + index
Hollander вне форума Ответить с цитированием
Старый 16.02.2010, 20:51   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  ind:integer;
begin
  ind := 0;
  repeat
    inc(ind); // начали с 1
  until not DirectoryExists('c:\test' + IntToStr(ind));// проверяем пока есть папки но номерам 1,2,...
  CreateDir('c:\test' + IntToStr(ind));// делаем следующую по номеру
end;
Оптимизируй дальше сам ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 17.02.2010, 05:17   #4
Drakulov
Пользователь
 
Аватар для Drakulov
 
Регистрация: 02.04.2009
Сообщений: 40
По умолчанию

Ага, спасибо! Будем пробовать.=)

Хы! Работает! И чего я сразу так не додумался...Спасибо огромное=)

Последний раз редактировалось Drakulov; 17.02.2010 в 05:22.
Drakulov вне форума Ответить с цитированием
Старый 17.02.2010, 21:35   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Лучше ForceDirectories, может создавать вложенные папки. использовать так же как CreateDir.
Пример:
Код:
 ForceDirectories('C:\1\2\3\4\');
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание новых таблиц в Access через Delphi mopozoff БД в Delphi 25 05.12.2009 20:18
Создание новых vba-модулей в mde-базе yura_yn Microsoft Office Access 4 14.10.2009 12:20
Создание папок. Alex Cones Общие вопросы Delphi 5 18.04.2009 15:32
Создание новых объектов Washington Общие вопросы Delphi 1 10.03.2007 21:57
Создание новых разделов PAVEL315 О форуме и сайтах клуба 14 20.01.2007 23:05