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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2011, 15:13   #1
Dmitry96
Пользователь
 
Аватар для Dmitry96
 
Регистрация: 09.06.2010
Сообщений: 35
Вопрос Загрузка файла из папки.

Добрый день.Я создаю редактор карт, и у меня появился вопрос, по загрузке файла.Я хочу, чтобы при нажатии кнопки, у меня открывалась определенная папка с картами(формат файла *txt), и автоматически отсеивались другие форматы файлов(короче, что бы открылось окошко только с текстовыми файлами).

Пожалуйста подскажите, как это сделать.
Совсем неважно как ты ударишь, важно как держишь удар....
Dmitry96 вне форума Ответить с цитированием
Старый 03.07.2011, 15:20   #2
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

У компонента filelistbox есть свойство filter. Там напишешь *.txt
Или через TSearchRec:
Код:
Procedure GetTxTFiles(path:string;Filelist:TListBox); //path - путь. Например C:\Program files
var
t:TSearchRec;
begin
FileList.Clear;
If FindFirst(path+'\*.*',faAnyFile,t)=0 then
While FindNext(t)=0 do
If LowerCase(ExtractFileExt(t.Name))='.txt' then
FileList.Items.Add(t.Name);
FindClose(t)
end;
БЯЯЯГГАААААА

Последний раз редактировалось Leo08; 03.07.2011 в 15:26.
Leo08 вне форума Ответить с цитированием
Старый 03.07.2011, 15:33   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а почему бы сразу фильтр не поставить?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.07.2011, 16:51   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

А чем стандартный OpenDialog не подходит?
eoln вне форума Ответить с цитированием
Старый 03.07.2011, 19:46   #5
Dmitry96
Пользователь
 
Аватар для Dmitry96
 
Регистрация: 09.06.2010
Сообщений: 35
По умолчанию

Спасибо за ответы, все получилось. Но возник еще один вопрос , который не стоит выносить в отдельную тему. За сохранение у меня отвечает вот этот код:
Код:
procedure TForm1.SaveClick(Sender: TObject);
var
 F:TextFile;
 x,y:byte;
begin
 AssignFile(f,NameMap.Text+'.txt');
 Rewrite(f);
 for y:=1 to 15 do
  for x:=1 to 20 do
   begin

    if x<>20 then
     Write(f,map[x,y]);

    if x=20 then
     Writeln(f,map[x,y]);

   end;
 CloseFile(f);
end;
В нем у меня текстовый файл создается возле экзешника.
Как сделать, что бы текстовый файл сохранялся в определенной папке?
Совсем неважно как ты ударишь, важно как держишь удар....
Dmitry96 вне форума Ответить с цитированием
Старый 03.07.2011, 20:03   #6
A-IX-2
Форумчанин
 
Аватар для A-IX-2
 
Регистрация: 08.10.2010
Сообщений: 101
По умолчанию

Как-то так:

Код:
AssignFile(f,'D:\Новая папка\result.txt');
"Думаешь, будет трудно? Конечно, будет! Но, только закаляя дух, людьми становятся люди!"
A-IX-2 вне форума Ответить с цитированием
Старый 03.07.2011, 21:25   #7
Dmitry96
Пользователь
 
Аватар для Dmitry96
 
Регистрация: 09.06.2010
Сообщений: 35
По умолчанию

Спасибо!=)
Совсем неважно как ты ударишь, важно как держишь удар....
Dmitry96 вне форума Ответить с цитированием
Старый 03.07.2011, 21:36   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

по поводу первого вашего вопроса...
Подключаем Dialogs
Код:
function OpenFileDlg(aPath:string):string;
const
//фильтор 
  cFilter='Текстовые файлы(*.txt)|*.txt';
//расширение по стандарту
  cDefExt='txt';
var
  OpenDlg:TOpenDialog;
begin
  Result:='';
  OpenDlg:=TOpenDialog.Create(Application);
  try
   OpenDlg.Filter:=cFilter; 
   OpenDlg.FilterIndex:=0; 
  OpenDlg.DefaultExt:=cDefExt;  
//если путь не задали, откроем нашу папку
   If aPath='' then aPath:=myDir; 
   OpenDlg.InitialDir:=aPath;
   if OpenDlg.execute then
//если дилок запущен, то вернём имя файла с полным путём
   Result:=OpenDlg.FileName;
//иначе вернём пустую строку.
  finally
   FreeAndNil(OpenDlg);
  end; 
end;
лучше так:
Код:
var
  f:TextFile;
  myDir:string;
begin
  //Наша папка
  myDir:=ExtractFilePath(ParamStr(0));
//вызываем чтобы папка data 100% существовала
 ForceDirectories(myDir+'Data\');
//сохраняем
  AssignFile(f,myDir+'Data\'+SameFileName);
//твой код
end;
Но я делаю чуть лучше.
В DataModule выношу переменные которые использую повсеместно.
Например такие как myDir.
Там же пишу функци GetDataPath котора сразу вернёт мне myDir+'Data\'.

В OnCreate модуля форсировано создаю все папки которые нужны для работы. И запрещаю системе или чему-либо другому, удалить, переместить, переименовать эти папки.

Последний раз редактировалось Человек_Борща; 03.07.2011 в 21:51.
Человек_Борща вне форума Ответить с цитированием
Старый 03.07.2011, 21:50   #9
Dmitry96
Пользователь
 
Аватар для Dmitry96
 
Регистрация: 09.06.2010
Сообщений: 35
По умолчанию

И вам спасибо)
Совсем неважно как ты ударишь, важно как держишь удар....
Dmitry96 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка каждого файла из папки Jim Becker Win Api 2 07.09.2010 22:26
Удаление файла excel из папки Utirka66 Microsoft Office Excel 3 25.02.2010 18:57
загрузка картинок из папки firmwares Мультимедиа в Delphi 7 28.01.2010 01:13
Проблема такова: язык:Delphi7; сохранения файла; загрузка файла в String Grid lightdevil Общие вопросы Delphi 3 06.03.2009 23:10