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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2008, 13:03   #1
SeЯgey
Пользователь
 
Регистрация: 03.04.2008
Сообщений: 50
Восклицание Не работает поиск файлов помогите

хочу переделать данную функцию для выбора файлов из папки, но она не работает исправте, если есть ошибку?

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Masks;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
type
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;

var
F: TSearchRec;
Path: string;
Attr: Integer;
begin
{Искать все файлы в заданной директории с расширение .*}
Path := 'c:\*.*';
Attr := faanyfile;
FindFirst(Path, Attr, F); // В данном месте выдает ошибку
{Если хотя бы один файл найден, то продолжить поиск}
if F.name <> '' then
begin
ListBox1.Items.Add(F.name); {Добавление в TListBox имени найденного файла}
while FindNext(F) = 0 do
ListBox1.Items.Add(F.name);
end;
FindClose(F);
end;
end.
SeЯgey вне форума Ответить с цитированием
Старый 12.04.2008, 13:13   #2
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

неправильно сделано, нужно
var r:integer;
..............
r:=FindFirst(Path, Attr, F);
while r=0 do //если нашли то возвращает 0, если нет то 1
begin
.................
end;
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 12.04.2008, 19:30   #3
SeЯgey
Пользователь
 
Регистрация: 03.04.2008
Сообщений: 50
По умолчанию

Проблема в том, что ругается
на этой строке FindFirst(Path, Attr, F); // В данном месте выдает ошибку,
Выводит вот это [Error] Unit12.pas(80): Types of actual and formal var parameters must be identical
а конкретно на < F >?
SeЯgey вне форума Ответить с цитированием
Старый 12.04.2008, 19:58   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вы нам привели код Unit1, а ругается у вас на Unit12.
Дальше:
procedure TForm1.Button1Click(Sender: TObject);
type
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;

var
F: TSearchRec;


Кто вас научил этой глупости? Немедленно уберите (красное, если непонятно).

Последний раз редактировалось mihali4; 12.04.2008 в 20:02.
mihali4 вне форума Ответить с цитированием
Старый 13.04.2008, 09:44   #5
SeЯgey
Пользователь
 
Регистрация: 03.04.2008
Сообщений: 50
По умолчанию

unit1,unit12 пробные программы, а действие одно и ошибка одинакова.
Я брал из теории, а там необходимо обьявлять написано,
а теперь удолил и все работает.
Спасибо!
SeЯgey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск *.csv и *.xls файлов Len@ Microsoft Office Excel 18 28.07.2008 22:31
Поиск файлов LeoN Общие вопросы Delphi 5 25.11.2007 22:54
поиск файлов KORN Компоненты Delphi 3 12.10.2007 05:42
Поиск файлов necky Общие вопросы Delphi 10 31.08.2007 00:27