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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2010, 20:11   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию Подредактировать процедуру поиска файлов...

Привет всем!
помогите подредактировать процедуру поиска файлов...

Код:
procedure ListFileAndHash(StartDir: string; Mask: string; List: TStrings);
var
  SearchRec: TSearchRec;
  Buff: string;
  Dir: string;
begin
  Dir := ExtractFilePath(ParamStr(0));
  if Mask = '' then
    Mask := '*.*';
  if StartDir[Length(StartDir)] <> '\' then
    StartDir := StartDir + '\';
  if FindFirst(StartDir + Mask, faAnyFile, SearchRec) = 0 then
  begin
    repeat Application.ProcessMessages;
      if (SearchRec.Attr and faDirectory) <> faDirectory then
      begin
        if StartDir + SearchRec.Name <> ParamStr(0) then
        begin
          case FilesListGenForm.HashGr.ItemIndex of 
//тип хеша
            0: Buff := StartDir + SearchRec.Name + ':' + UpperCase(MD5Print(MD5File(StartDir + SearchRec.Name)));
//MD5
            1: Buff := StartDir + SearchRec.Name + ':' + FileCRC(StartDir + SearchRec.Name);
//CRC32
          end;
          Delete(Buff, 1, Pos(Dir, Buff) + Length(Dir) - 1);
          List.Add(Buff);
        end;
      end
      else if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
      begin
        ListFileAndHash(StartDir + SearchRec.Name + '\', Mask, List);
      end;
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
end;
в чем проблема....

если процедуру использовать вот так:
Код:
...
ListFileAndHash(ExtractFilePath(ParamStr(0)), '*.*', Log.Items); //указываю процедуре каталог программы
...
то в Log.items вывод нормальный:
Код:
...
SecretAdminFormUnit.dcu:77A4A7E246CEF2DBB387ACCD49B886A0
SecretAdminFormUnit.ddp:75484304A2CCECC6F66E3410E37A039A
SecretAdminFormUnit.dfm:6CB1102D8116C2669EBF2A5EC2E26158
SecretAdminFormUnit.obj:4111B7B8E6DA39EA3E1ABE73AA50FB03
SecretAdminFormUnit.pas:33BEF7C302FC29EAFE177612C2EFAB33
SecretAdminFormUnit.~dfm:818F618A0494FD1F04B5E0C964158742
SecretAdminFormUnit.~pas:33BEF7C302FC29EAFE177612C2EFAB33
...
если вот так:
Код:
...
ListFileAndHash('C:\AppServ\www', '*.*', Log.Items); //указываю процедуре посторонний каталог
...
то данные "Через пень-колоду":
Код:
82539EC74A6DF22E1E
1C0FD3E7F264A058A85
D76723991CC9A0918B
A624948CE02C05A80D85
4EDE562F5E02D2F97B
03E3CEDEA6B2C4AB
DA29DB863B70DA5EC26
BC5AEDE2500C3187203214E
BFE42E39BA4E426BCF50
54A822A941FCEE6
E13CDD55651FE46A5D33A93
DA6EC6C8FB957D7D70A5
F5BBCE1974ED5D0
F6B0B2B7CE0D53043B
FC2105001BCC5AE481D5
5F3E4D32B9044FBB0EC3
75BBCFDA477CCBDCDCA
ни имени файла ни места где содержится файл.. то вообще ничего пустая строка..

помогите решить=)
Человек_Борща вне форума Ответить с цитированием
Старый 21.05.2010, 23:55   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

поможет кто?
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подредактировать . Двухмерные массивы lilia2121 Помощь студентам 2 18.05.2010 09:40
Программа для поиска повторяющихся текстовых файлов Dmytry Общие вопросы .NET 14 08.12.2009 14:45
Процедура поиска нескольких файлов одновременно GvR Общие вопросы Delphi 3 15.11.2009 02:43
ребят может у кого-нибудь есть исходники для программы поиска файлов соответствующих шаблону? andreww Паскаль, Turbo Pascal, PascalABC.NET 0 31.05.2009 10:18
Написать подпрограмму-процедуру поиска максимального элемента в массиве Noxil Паскаль, Turbo Pascal, PascalABC.NET 3 27.11.2008 21:39