Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Выборка файлов   Найти похожие ветки 

 
CuBiC   (2010-05-28 04:54) [0]

Здравствуйте, уважаемые программисты! У меня такая задача: имеется какая-либо папка, в ней находятся различные типы файлов... На форме находится ListBox и Button. По нажатии кнопки, в ListBox добавляются все имеющиеся файлы в папке в расширением .txt - при этом само расширение отображать не нужно. Помогите, пожалуйста. Заранее спасибо! :)


 
brother ©   (2010-05-28 05:15) [1]

где код добавления?


 
CuBiC   (2010-05-28 05:20) [2]

Дак в том то и дело, что его нет! Я и хочу узнать какой код необходим для этой операции..


 
CuBiC   (2010-05-28 05:20) [3]

Удалено модератором


 
brother ©   (2010-05-28 05:26) [4]

ищи в справке: FindFirst, FindNext, FindClose
когда будет код добавления - посмотрим шо не так...


 
CuBiC   (2010-05-28 05:29) [5]

А с самим кодом нельзя помочь что-ли?


 
brother ©   (2010-05-28 05:45) [6]

1. вообще можно, но не нужно, тк думать нужно тебе...
2. там код то почти весь из справки будет (кробе банального ListBox.Items.Add)
3. небольшая заморочка с "отрезкой" расширения файла...
выполни 1, 2 далее поговорим...


 
CuBiC   (2010-05-28 05:57) [7]

Я вероятно незря задал вопрос в разделе "Для новичков"?????


 
brother ©   (2010-05-28 05:59) [8]

понятно...


 
CuBiC   (2010-05-28 06:01) [9]

Ру с кодом можно помочь или нет?


 
CuBiC   (2010-05-28 06:01) [10]

Удалено модератором


 
Anatoly Podgoretsky ©   (2010-05-28 07:11) [11]

> CuBiC  (28.05.2010 05:29:05)  [5]

Он настолько простой, что приводить его обидно, тем более что Интернет
замусорен примерами.


 
Anatoly Podgoretsky ©   (2010-05-28 07:12) [12]

> CuBiC  (28.05.2010 05:57:07)  [7]

Вообще то зря, это вопрос не для новичков, для них он очень простой,
поскольку они умеют пользоваться поиском, справкой


 
CuBiC   (2010-05-28 07:13) [13]

Ну а примерчик можно?


 
Омлет ©   (2010-05-28 07:32) [14]

Мой психоаналитик говорит, что надо помогать людям.

procedure TForm1.Button1Click(Sender: TObject);
var
 SearchRec : TSearchRec;
 i: integer;
 fn: string;
 Dir: string;
begin
 Dir := "C:\Documents and Settings\fenik\My Documents\";
 if FindFirst(Dir + "*.txt", faAnyFile, SearchRec) = 0 then
 begin
   try
     repeat
       fn := ExtractFilename(SearchRec.Name);
       i := length(fn);
       repeat
         dec(i);
       until (fn[i] = ".") or (i < 2);
       ListBox1.Items.Add(copy(fn, 1, i-1));
     until FindNext(SearchRec) <> 0;
   finally
     FindClose(SearchRec);
   end;
 end;
end;


 
Leonid Troyanovsky ©   (2010-05-28 07:36) [15]


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 with Control as TListBox, Canvas do
   TextOut(Rect.Left, Rect.Top, ChangeFileExt(Items[Index], ""));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ListBox1.Perform(LB_DIR, 0, LParam(PChar("*.txt")));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListBox1.Style := lbOwnerDrawFixed;
end;

--
Regards, LVT.


 
CuBiC   (2010-05-28 07:43) [16]


> Мой психоаналитик говорит, что надо помогать людям.

Спасибо большое :) А как быть если в папке содержаться еще и подкатологи??


 
CuBiC   (2010-05-28 07:43) [17]


> Мой психоаналитик говорит, что надо помогать людям.

Спасибо большое :) А как быть если в папке содержаться еще и подкатологи??


 
wl ©   (2010-05-28 07:50) [18]

гугли по слову "рекурсия"


 
Омлет ©   (2010-05-28 08:01) [19]


procedure SearchTxtInDir(const dir: string; sl: TStrings);
var
 SearchRec : TSearchRec;
begin
 if FindFirst(Dir + "*.txt", faAnyFile, SearchRec) = 0 then
 begin
   try
     repeat
       sl.Add(ChangeFileExt(ExtractFilename(SearchRec.Name), ""));
     until FindNext(SearchRec) <> 0;
   finally
     FindClose(SearchRec);
   end;
 end;
end;

procedure SearchTxtInDirs(const dir: string; sl: TStrings);
var
 SearchRec : TSearchRec;
begin
 SearchTxtInDir(dir + SearchRec.Name, sl);
 if FindFirst(Dir + "*", faDirectory, SearchRec) = 0 then
 begin
   try
     repeat
       if (SearchRec.Name <> ".") and (SearchRec.Name <> "..") then
         SearchTxtInDirs(Dir + SearchRec.Name + "\", sl);
     until FindNext(SearchRec) <> 0;
   finally
     FindClose(SearchRec);
   end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 SearchTxtInDirs("C:\Documents and Settings\fenik\My Documents\", ListBox1.Items);
end;


 
brother ©   (2010-05-28 08:04) [20]

пятница - щедрый день)


 
Омлет ©   (2010-05-28 08:05) [21]

Пардон,
SearchTxtInDir(dir + SearchRec.Name, sl);
надо заменить на
SearchTxtInDir(dir, sl);


 
CuBiC   (2010-05-28 08:07) [22]


> procedure SearchTxtInDir(const dir: string; sl: TStrings);
> var  SearchRec : TSearchRec;begin  if FindFirst(Dir + "*.
> txt", faAnyFile, SearchRec) = 0 then  begin    try      repeat
>        sl.Add(ChangeFileExt(ExtractFilename(SearchRec.Name),
>  ""));      until FindNext(SearchRec) <> 0;    finally  
>    FindClose(SearchRec);    end;  end;end;procedure SearchTxtInDirs(const
> dir: string; sl: TStrings);var  SearchRec : TSearchRec;begin
>  SearchTxtInDir(dir + SearchRec.Name, sl);  if FindFirst(Dir
> + "*", faDirectory, SearchRec) = 0 then  begin    try  
>    repeat        if (SearchRec.Name <> ".") and (SearchRec.
> Name <> "..") then          SearchTxtInDirs(Dir + SearchRec.
> Name + "\", sl);      until FindNext(SearchRec) <> 0;  
>  finally      FindClose(SearchRec);    end;  end;end;procedure
> TForm1.Button1Click(Sender: TObject);begin  SearchTxtInDirs("C:
> \Documents and Settings\fenik\My Documents\", ListBox1.Items);
> end;

что-то не могу скомпилировать... :(


 
wl ©   (2010-05-28 08:11) [23]


> \fenik\

а если у CuBiC"а имя пользователя в винде другое? не найдутся файлы :))


 
CuBiC   (2010-05-28 08:12) [24]

Омлет, спасибо огромное!!!!!!!! Это то, что мне было нужно!! :))


 
CuBiC   (2010-05-28 08:13) [25]

Омлет, а как двойным щелчком открыть какой-либо файл из этого списка?


 
Омлет ©   (2010-05-28 08:25) [26]

type
 TFileName = class
   fFullName: string;
   class function CreateInstance(fn: string): TFileName;
 end;

{ TFileName }

class function TFileName.CreateInstance(fn: string): TFileName;
begin
 Result := TFileName.Create;
 Result.fFullName := fn;
end;

procedure SearchTxtInDir(const dir: string; sl: TStrings);
var
 SearchRec : TSearchRec;
begin
 if FindFirst(Dir + "*.txt", faAnyFile, SearchRec) = 0 then
 begin
   try
     repeat
       sl.AddObject(ChangeFileExt(ExtractFilename(SearchRec.Name), ""),
         TFileName.CreateInstance(Dir + SearchRec.Name));
     until FindNext(SearchRec) <> 0;
   finally
     FindClose(SearchRec);
   end;
 end;
end;

procedure SearchTxtInDirs(const dir: string; sl: TStrings);
var
 SearchRec : TSearchRec;
begin
 SearchTxtInDir(dir, sl);
 if FindFirst(Dir + "*", faDirectory, SearchRec) = 0 then
 begin
   try
     repeat
       if (SearchRec.Name <> ".") and (SearchRec.Name <> "..") then
         SearchTxtInDirs(Dir + SearchRec.Name + "\", sl);
     until FindNext(SearchRec) <> 0;
   finally
     FindClose(SearchRec);
   end;
 end;
end;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
 SearchTxtInDirs("C:\Documents and Settings\fenik\My Documents\", ListBox1.Items);
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
 Memo1.Lines.LoadFromFile(TFileName(ListBox1.Items.Objects[ListBox1.ItemIndex]).f FullName);
end;


 
Омлет ©   (2010-05-28 08:27) [27]

Пробел в конце - f FullName - надо убрать. Это форум вставил.


 
Омлет ©   (2010-05-28 08:32) [28]

А по поводу двойного щелчка - уж сам подумай.
Я только пример дал. И то не лучший )


 
CuBiC   (2010-05-28 08:33) [29]


> Пробел в конце - f FullName - надо убрать. Это форум вставил.

Дак это загружается в Мемо, а мне надо, чтоб по двойному щелчку, этот файл открывался в блокноте Windows..


 
wl ©   (2010-05-28 08:55) [30]

CreateProcess(0,"nodepad "+
ну и так далее, открой наконец справку, сколько можно клянчить


 
Плохиш ©   (2010-05-28 09:45) [31]

Вот и ещё одному сирому и убогому подали милостыню...


 
Игорь Шевченко ©   (2010-05-28 13:04) [32]

Плохиш ©   (28.05.10 09:45) [31]

Чего с них взять - Азия-с



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.06 c
15-1266561272
Kerk
2010-02-19 09:34
2010.08.27
Глобальное потепление


2-1266753754
Neyladel
2010-02-21 15:02
2010.08.27
Зависает Форма


3-1240631464
ddd329
2009-04-25 07:51
2010.08.27
Объединение записей


2-1270445192
Равиль
2010-04-05 09:26
2010.08.27
XPMan и Form.Create


2-1271662955
GanibalLector
2010-04-19 11:42
2010.08.27
TEdit для ввода IP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский