|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.12.2011, 20:38 | #1 |
Пользователь
Регистрация: 21.12.2010
Сообщений: 31
|
посимвольное считывание
у меня такая ситуация.я ввожу в окне Edit1 два расширения через запятую,нажимаю на кнопку и у меня должно вывести файлы с расширением которые я задал,но возникает проблема.я решил считать посимвольно первое расширение до запятой,а потом второе. в программе, которая ниже, я составил такой цикл,но он не хочет работать.помогите разобраться.заранее спасибо.
#include <vcl.h> #pragma hdrstop #include "Unit1.h" AnsiString diskname,p,key=""; // переменая- буква диска void ListFiles(AnsiString path,TStrings* List) { TSearchRec sr; // структура, которая хранит информацию о файле. if (FindFirst(path+"*.*", faAnyFile, sr) == 0) //функция,начинающая поиск файлов { do { if (sr.Attr & faDirectory) // если атрибут файла-директория(папка) { if (sr.Name!=".") // если название папки не "." if (sr.Name!="..") // если название папки не ".." { ListFiles(path+sr.Name+"\\",List);// Рекурсивный вызов } } else { AnsiString Ext=ExtractFileExt(sr.Name).UpperCa se(); for(int i=0;i<p.Length();i++) { if (p[i]!=',') key=key+p[i]; else{ if (Ext==key) List->Add(sr.Name); // добавляем файлы в список key=""; }; }; } } while (FindNext(sr) == 0); // функция, продолжающая поиск файлов FindClose(sr); // функция завершение поиска, освобождение памяти } Application->ProcessMessages(); // чтобы не зависала форма } //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { p=Edit1->Text; diskname = DriveComboBox1->Text.SubString(1,2);// копируем букву диска ListFiles(diskname+"\\",ListBox1->Items); } //--------------------------------------------------------------------------- |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Посимвольное сравнение двух Memo | iKarma | Общие вопросы Delphi | 8 | 21.10.2011 15:07 |
посимвольное удаление из text | GaLiof | Помощь студентам | 0 | 30.01.2011 16:52 |
посимвольное сравнение текста | Анастасия91 | Помощь студентам | 1 | 11.12.2010 08:06 |
Посимвольное считывание из файла. Проблема кодировки. Кириллица в консоли. | SrgGld | Общие вопросы C/C++ | 0 | 16.11.2010 20:34 |
посимвольное считывание | DeFace | Общие вопросы C/C++ | 4 | 05.04.2009 23:11 |