Форум: "Прочее";
Текущий архив: 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.258 c