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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2009, 13:52   #1
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
Вопрос название папки.

Привет всем. Я незнал как назвать тему вообщем вот:

Есть небольшая проблема: вообщем программа такова:
есть listbox, он должен загружать файл из: корневая папка с прогой, + папка 'names' + Любая папка + файл.
Вообщем со всем проблем нет, но как сделать так чтоб вот эта "НУЖНАЯ" "любая папка" папка могла менять имя, или создалась ещё одна такая папка.... и файл загружался с той что была последней в выборе из form2.treeview. Спасибо. Может что то обьяснил неправильно...

Последний раз редактировалось blackstersl; 15.06.2009 в 14:40.
blackstersl вне форума Ответить с цитированием
Старый 15.06.2009, 14:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Может что то обьяснил неправильно
Я лично мало чтопонял, но из того что понял думаю тебе просто нужно получить то что в дереве ты выбрал:
form2.TreeView1.Selected.Text
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2009, 14:30   #3
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

обьясню подругому:
при создании формы в listbox добавляются файлы например из файла 222.txt но этот файл находится в папке D:/программа/list/"папка"/222.txt
"папка" может иметь разные названия.
надо чтоб str:string; показывало имя этой папки, тем самым файл будет загружатся следующим образом:
Код:
var
path, fullway,str: string;

.....

getdir(0, path);
str := '/' + название папки которое можно изменять;
fullway:= path + '/list' + str;
listbox1.items.add(fullway + '/222.txt');
end;
Вот так как то -)
blackstersl вне форума Ответить с цитированием
Старый 15.06.2009, 14:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
"папка" может иметь разные названия.
Да ради бога, но откуда эти названия беруться и как меняются?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2009, 14:51   #5
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

ну нам захотелось поменять название папки-- вот и поменяли.
blackstersl вне форума Ответить с цитированием
Старый 15.06.2009, 15:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вот и поменяли.
По рукам за "захотелось". Папки к которым привязаны программы трогать не стоит. Или тогда меняй и в программе, или держи отдельный файл настроек, откуда прога будет читать название папки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2009, 15:05   #7
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

ладно, как сделать то что я пспрашивал?
blackstersl вне форума Ответить с цитированием
Старый 15.06.2009, 15:34   #8
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вот что у меня получилось, конечно не самый лучший код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 str: string;
 namef: string;
 i: integer;
begin
 str := Edit1.Text;
 //Сначала находим только имя файла вместе с расширением
 namef := ExtractFileName(str);
 for i := 1 to Length(namef) do
  if Pos('\', namef) <> 0 then
   Delete(namef, 1, Pos('\', namef))
  else
   Break;
 //Удаляем это имя файла из пути
 Delete(str, Pos(namef, str) - 1, Length(ExtractFileName(str)) + 1);
 //Дальше удаляем все остальные папки до нужной
 for i := 1 to Length(str) do
  if Pos('\', str) <> 0 then
   Delete(str, 1, Pos('\', str))
  else
   Break;

 Edit2.Text := str;
end;
Edit1.Text = 'D:\программа\list\papka\222.txt';
Обратите внимание на разделитель '\', а не '/'
Находит только: 'papka' и записывает в Edit2.Text;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 15.06.2009 в 15:36.
Neeter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск папки Михаил Юрьевич Общие вопросы Delphi 8 04.06.2009 12:52
Добавить название Romuald Microsoft Office Excel 2 13.05.2009 10:18
Как вывести название папок из указанной папки? zotox Помощь студентам 1 01.05.2009 14:37
название процесса! zonclayv Win Api 1 12.04.2009 16:07
Поиск папки WOLFak Общие вопросы Delphi 9 21.01.2008 14:49