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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2010, 20:41   #1
Az@zel
 
Регистрация: 14.01.2010
Сообщений: 8
По умолчанию Сохранить список файлов и папок в определённой директории в текстовый файл

Есть вот такой код для сохранения списка файлов и папок в определённой директории в текстовый файл
Код:
procedure GetFileList(DirList: string; ListBox1: TListBox); // листинг директории, например GetFileList('C:\*.*')
begin
    ListBox1.Clear;
    ListBox1.Perform(LB_DIR,
                     DDL_ARCHIVE +
                     DDL_DIRECTORY +
                     DDL_DRIVES +
                     DDL_EXCLUSIVE +
                     DDL_HIDDEN +
                     DDL_READONLY +
                     DDL_READWRITE +
                     DDL_SYSTEM,
                     Integer(DirList));
  ListBox1.Items.SaveToFile(GetWinDir+'\temp\DirList.txt');
end;
Приходится делать на форме невидимый ListBox
Я так понимаю, всё можно сделать легче и проще через StringList

то же самое
Код:
TstringList.Create.SaveToFile(GetWinDir+'\temp\DirList.txt');
а здесь как заменить???

Код:
TstringList.Create. ......(LB_DIR,
                     DDL_ARCHIVE +
                     DDL_DIRECTORY +
                     DDL_DRIVES +
                     DDL_EXCLUSIVE +
                     DDL_HIDDEN +
                     DDL_READONLY +
                     DDL_READWRITE +
                     DDL_SYSTEM,
                     Integer(DirList));
Az@zel вне форума Ответить с цитированием
Старый 10.03.2010, 13:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Var s:TStringList
begin
s:=TStringList.Create;
Далее в s.Add(Добавляешь строку)
И сохраняешь. тем же методом
Понял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2010, 15:17   #3
Az@zel
 
Регистрация: 14.01.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Далее в s.Add(Добавляешь строку)
И сохраняешь. тем же методом
Понял?
Так уже пробовал. получается несовместимость... Incompatible types: 'String' and 'Integer'....

Вероятно, надо подправить что-то в этой строке: LB_DIR, DDL_ARCHIVE + DDL_DIRECTORY + DDL_DRIVES + DDL_EXCLUSIVE + DDL_HIDDEN +DDL_READONLY +DDL_READWRITE + DDL_SYSTEM, Integer(DirList));
Az@zel вне форума Ответить с цитированием
Старый 10.03.2010, 15:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно так:
Код:
s.add(DirList+'='+IntToStr(DDL_ARCHIVE +
                     DDL_DIRECTORY +
                     DDL_DRIVES +
                     DDL_EXCLUSIVE +
                     DDL_HIDDEN +
                     DDL_READONLY +
                     DDL_READWRITE +
                     DDL_SYSTEM))
Тогда строка примет вид
ИмяФайла=Атрибуты в Виде числа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2010, 15:52   #5
Az@zel
 
Регистрация: 14.01.2010
Сообщений: 8
По умолчанию

Компилируется без ошибок, спасибо
вот только файл создаётся пустым...
точнее вот такого формата
C:\=49207 ..вероятно это количество файлов на диске

с листбоксом получалось вот в таком виде:
[..]
[addins]
aksdrvsetup.log
[AppPatch]
Arj.pif
Ascd_tmp.ini
[assembly]
avisplitter.ini
bfsvc.exe
[Boot]
bootstat.dat
....
....
и т.д.


[-c-]
[-d-]
[-e-]
[-f-]
[-g-]
[-h-]
[-i-]
[-t-]
[-u-]
[-v-]
[-w-]
[-x-]
[-y-]

Последний раз редактировалось Az@zel; 10.03.2010 в 16:01.
Az@zel вне форума Ответить с цитированием
Старый 10.03.2010, 20:41   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Я так понимаю, всё можно сделать легче и проще через StringList
давайте разберем что делает Listbox.perfom( LB_DIR,....

perform отправить сообщение с кодом LB_DIR и параметрами ....
Это можно трактовать как попросить OC windows заполнить наш Listbox данными о папках и файлах в соответствии с указанными параметрами. что в результате и будет проделано.

StringList не является наследником Twincontrol не имеет такой функции и его сначала необходимо заполнить иформацией. Для получения списка папок и файлов применяются функции findfirst FindNext примеры на форуме были.
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
список файлов в web директории Serega_P Общие вопросы Delphi 3 11.06.2009 11:15
Получить список всех файлов и папок FTP Nester Работа с сетью в Delphi 4 28.04.2009 12:57
Получить список файлов и папок. gusluk Общие вопросы Delphi 3 10.03.2009 12:49
список всех открытых файлов и папок. Teleport Общие вопросы Delphi 4 22.06.2008 11:29
сохранить параметры шрифта в текстовый файл Allexandr Общие вопросы Delphi 2 24.02.2007 11:04