Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ListBox & FindFiles


Автор: AL CAPONE 20.1.2006, 15:18
Привет крутым программерам ! Вопросец вот какой: есть процедура поиска файлов по маске в заданной директории:

Код

procedure TForm1.FindFiles(APath:string);
var
  FSearchRec:TSearchRec;
  FindResult:integer;
begin
  APath:=DirectoryListBox.Directory;
  FindResult:=FindFirst(APath+'\'+'*.doc',faAnyFile,FSearchRec);
    try
      while FindResult=0 do
        begin
          ListBox.Items.Add(FSearchRec.Name);
          FindResult:=FindNext(FSearchRec);
        end;
    finally
     FindClose(FSearchRec);
    end;
end;


Трабла вот в чём: выражение FSearchRec.Name содержит правильное имя файла и его расширение, а при записи в ListBox.Items.Add(FSearchRec.Name) происходит следующее: на форме отображается всё гут в ListBox-е, но при обращении к нему для получения имени файла через str:=ListBox.Items.ValueFromIndex[0] оно считывается без первого символа, каким бы он ни был. Например:
FSearchRec.Name равен "Календарный.doc";
делаем ListBox.Items.Add(FSearchRec.Name);
после на форме в ListBox появляется строка "Календарный.doc" (как и положено собственно), а при считывании через str:=ListBox.Items.ValueFromIndex[0] в переменную str передаётся только "алендарный.doc", причём это случается и на файлах с именем абсолютно разных размеров (даже если файл типа "1.doc", то будет передана строка ".doc").

П О М О Г И Т Е ! ! !

Автор: z-END 20.1.2006, 15:23
Цитата(AL CAPONE @ 20.1.2006, 15:18 Найти цитируемый пост)
str:=ListBox.Items.ValueFromIndex[0]

а потомучто нефик так деалтьsmile)
str:=ListBox.Items[0] надо...
данный механизм используется если у тебя в TStrings информация хранится в виде:
ITEM1=VALUE1
ITEM2=VALUE2

Автор: Guedda 20.1.2006, 15:31
Код

Str := ListBox1.Items[ListBox1.ItemIndex];

Автор: Romikgy 20.1.2006, 16:16
Имхо так проще получить список файлов
Код

 SendMessage(ListBox.Handle,LB_DIR,DDL_READWRITE,Integer(Pchar(APath)));

Автор: AL CAPONE 23.1.2006, 15:10
Всем спасибо огромное за советы. Они очень помогли.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)