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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2007, 19:01   #1
Teen4jump
Пользователь
 
Аватар для Teen4jump
 
Регистрация: 19.06.2007
Сообщений: 88
По умолчанию Помогите с поиском файлов!!!

Сделал маленькую програмку для поиска файлов, но чёта поиск невыполняется. Вот код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Name: TEdit;
Size: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
................

................
procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec:TSearchRec;
begin
if FindFirst(Name.Text,faAnyFile,Searc hRec)=0 then
Size.Text:=IntToStr(SearchRec.Size) + 'байт';
FindClose(SearchRec);
end;
end.
Teen4jump вне форума Ответить с цитированием
Старый 24.06.2007, 19:06   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А где FindNext?

Код:
if FindFirst(directory+'\*.*',faAnyFile,rec)=0 then
  begin
    if rec.Name<>'.' then
      Size.Text:=IntToStr(rec.Size)+ 'байт';
    while FindNext(rec)=0 do
      if rec.Name<>'..' then
        Size.Text:=IntToStr(rec.Size)+ 'байт';
    FindClose(rec)
  end;

Последний раз редактировалось zetrix; 25.06.2007 в 08:07.
Carbon вне форума Ответить с цитированием
Старый 24.06.2007, 19:17   #3
Teen4jump
Пользователь
 
Аватар для Teen4jump
 
Регистрация: 19.06.2007
Сообщений: 88
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec:TSearchRec;
begin
if FindFirst(Name.Text,faAnyFile,Searc hRec)=0 then
Size.Text:=IntToStr(SearchRec.Size) + 'байт';
FindNext(SearchRec);--так что ли???
FindClose(SearchRec);
end;
end.
Я с поиском файлов в Delphi ещё несталкивался поэтому много чего непонимаю
Teen4jump вне форума Ответить с цитированием
Старый 24.06.2007, 19:22   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

if rec.Name<>'.' then

и

if rec.Name<>'..' then

не забудь.

И while тоже не помешает...
Carbon вне форума Ответить с цитированием
Старый 25.06.2007, 01:12   #5
ЧИЖ
Форумчанин
 
Аватар для ЧИЖ
 
Регистрация: 24.02.2007
Сообщений: 104
Лампочка

а тебе обязательно писать поиск самому
попрбуй TFileListBox это удобнее (лежит на закладке "win 3.1")
а файлы от папок там можно отличить по "[]"
Разберемся.......
ЧИЖ вне форума Ответить с цитированием
Старый 25.06.2007, 02:15   #6
Teen4jump
Пользователь
 
Аватар для Teen4jump
 
Регистрация: 19.06.2007
Сообщений: 88
По умолчанию

Выложите кто код для поиска файлов по размеру!
Teen4jump вне форума Ответить с цитированием
Старый 25.06.2007, 08:19   #7
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var Rec:TSearchRec;
begin
if FindFirst(directory+'\*.*',faAnyFile,rec)=0 then
  begin
  FindNext(rec); //первое, что найдёт - '.'
  FindNext(rec); //второе, что найдёт - '..'
  while FindNext(rec)=0 do if SIZE=rec.Size then ListBox1.Items.Add(rec.Name);
  FindClose(rec);
  end;
end;
SIZE - размер, по которому ищем файл
ListBox1 - сюда будут выведены файлы, удовлетворяющие нашему размеру.
Вместо = можешь написать <=, >= как тебе надо, так и сделай. Можно с помощью нехитрой формулы искать по приблизительному размеру (это уже сам думай, хоть что-то ты же должен сам сделать )

У меня тут в подписи есть парочка ссылок на литературу - поизучай. Т.к. и тебе полезнее будет, и нам не придётся отвечать на простецкие вопросы.
zetrix вне форума Ответить с цитированием
Старый 25.06.2007, 12:32   #8
Teen4jump
Пользователь
 
Аватар для Teen4jump
 
Регистрация: 19.06.2007
Сообщений: 88
По умолчанию

У меня постоянно выдаёт ошибку типа Directory -- undeclared indentifier;
Teen4jump вне форума Ответить с цитированием
Старый 25.06.2007, 20:36   #9
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

вот это даааа......
var
directory:string;
...
directory:='c:\';
rpy3uH вне форума Ответить с цитированием
Старый 26.06.2007, 09:37   #10
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

directory - директория поиска.
Если нужно и во вложенных директория искать, используйте рекурсию.
(смотрите на форуме, это уже обсуждали)
zetrix вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с поиском EugenZyr Помощь студентам 1 07.05.2008 14:02
Помогите с поиском файлов Alias_Katty Помощь студентам 1 16.04.2008 15:03
Помогите с поиском 1234 БД в Delphi 5 01.04.2008 11:33
Помогите с поиском Egych PHP 1 09.08.2007 08:00