Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Загрузка txt-файла из другой папки


Автор: stat007 24.12.2009, 16:48
Подскажите как правильно сделать. Код, который я привёл ниже, загружает в Memo1 txt-файл, который совпадает с именем приведённым в ListBox1 и находится в папке с программой...
А нужно сделать так, чтобы происходило тоже самое, но только чтобы файл загружался с папки, которая находится так же в папке где программа (имя папки допустим: Новая папка).
Как это сделать???
Код

Memo1->Lines->LoadFromFile(ListBox1->Items->Strings[ListBox1->ItemIndex]);

Автор: Alca 24.12.2009, 17:01
А ты как думаешь?

Добавлено @ 17:05
Код

Memo1->Lines->LoadFromFile(
    ExtractFileDir( Application->ExeName() ) + _T("\\Новая папка\\") + ListBox1->Items->Strings[ListBox1->ItemIndex]
);

Автор: Данкинг 24.12.2009, 18:09
stat007, вообще не забывай про эти полезные функции - "ExtractFileDir( Application->ExeName() )".  smile Я вроде уже писал их тебе в каком-пто примере.

Автор: stat007 24.12.2009, 18:13
Alca, 
Странный код конечно, и 6 ошибок выдаёт.... а полегче никак????

Автор: vikaz 24.12.2009, 18:26
Цитата(stat007 @  24.12.2009,  20:13 Найти цитируемый пост)
Странный код конечно, и 6 ошибок выдаёт.... а полегче никак???? 

А что в этом коде такого странного и непонятного. Все пишут в разных средах,кто  в 6-ке, кто уже в 2009-2010. И там, естественно, есть небольшие различия. Но Вам пишут код, чтобы Вы имели представления и если бы Вы хотели разобраться, то уже давно бы это сделали.   smile 
попробуй так:
Код

Memo1->Lines->LoadFromFile(ExtractFileDir( Application->ExeName) + "Новая папка\\" + ListBox1->Items->Strings[ListBox1->ItemIndex]);
    Application->ExeName - возвращает полный путь с названием файла, откуда запущена программа (с:\test\test.exe)
  • ExtractFileDir() - оставляет от полного пути с названием файла только путь (с:\test\)
  •  "Новая папка\\" - любое название вашей папки, которая лежит в папке с программой, в конце обязательно нужен знак \\
  •  ListBox1->Items->Strings[ListBox1->ItemIndex] - возвращает строчку которая выделена у Вас в ListBox'e (допустим файл Проверка.txt)
Если все развернуть что написано Выше, то примерно получиться такая строка:
Код

Memo1->Lines->LoadFromFile("c:\\test\\Новая папка\\Проверка.txt");

СЛОЖНО? 

Автор: Данкинг 24.12.2009, 19:32
Цитата(stat007 @  24.12.2009,  18:13 Найти цитируемый пост)
6 ошибок выдаёт

Например? smile  Мне аж интересно.

Цитата(stat007 @  24.12.2009,  18:13 Найти цитируемый пост)
а полегче никак???? 

Интересно, куда легче, чем одна строчка?

Автор: vikaz 24.12.2009, 19:35
на вскидку нашел только 1, нужно  Application->ExeName, вместо  Application->ExeName(). Ну и может на _T - ВСЕ!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)