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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2018, 14:24   #11
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

не выбирает файл по заданному пути
Etsareva вне форума Ответить с цитированием
Старый 18.06.2018, 14:27   #12
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

не сработало....
Etsareva вне форума Ответить с цитированием
Старый 18.06.2018, 14:28   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

что и как не сработало? код показывай
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.06.2018, 14:31   #14
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
FindRecursive ('\\server-nas\GOST-FA\', '*.*');
end;

Procedure TForm1.FindRecursive(Const path: String; Const mask: String);
Var
 fullpath: String;

  Function Recurse( Var path: String; Const mask: String ): Boolean;
    Var
      SRec: TSearchRec;
      retval: Integer;
      oldlen: Integer;
    Begin
      Recurse := True;
      oldlen := Length(path);
      retval := FindFirst(path+mask, faAnyFile, SRec);
      While retval = 0 Do Begin
        Application.ProcessMessages;
        if (SRec.Attr and (faDirectory or faVolumeID)) = 0 then begin
     if pos('ГОСТ Р52745-2007', srec.name) > 0
     then Form1.Listbox1.Items.Add(path+srec.name);

    end;
         //Form1.Caption:='Found '+IntToStr(Form1.ListBox1.items.Count)+' files...';
        retval := FindNext(SRec);
      End;
      FindClose(SRec);

      If not Result Then Exit;

      retval := FindFirst( path+'*.*', faDirectory, SRec);
      While retval = 0 Do Begin
        If (SRec.Attr and faDirectory) <> 0 Then
          If (SRec.Name <> '.') and (SRec.Name <> '..') Then Begin
            path := path + SRec.Name + '\';
            If not Recurse( path, mask ) Then Begin
              Result := False;
              Break;
            End;
            Delete( path, oldlen+1, 255 );
          End;
        retval := FindNext( SRec );
      End;
      FindClose( SRec );
    End;
  Begin
 If path = '' Then GetDir(0, fullpath)
              Else fullpath := path;

 If fullpath[Length(fullpath)] <> '\' Then fullpath := fullpath + '\';

 If mask = '' Then  Recurse(fullpath, '*.*')
              Else  Recurse(fullpath, mask);

 end;

 procedure TForm1.Button2Click(Sender: TObject);
var path: string;  SRec: TSearchRec;
begin
 OpenDialog1.Title:='Выберите файл';
OpenDialog1.Filter:='Все файлы|*.*';
// Opendialog1.InitialDir:='\\server-nas\GOST-FA\';
if ListBox1.ItemIndex<>-1 then OpenDialog1.InitialDir:= ExtractFilePath(ListBox1.Items[ListBox1.ItemIndex]);
  if OpenDialog1.Execute then ShowMessage(openDialog1.FileName);
end;
Etsareva вне форума Ответить с цитированием
Старый 18.06.2018, 14:37   #15
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

все получилось! спасибо Вам большое!
Etsareva вне форума Ответить с цитированием
Старый 20.06.2018, 08:36   #16
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

в продолжение темы: директория \\server-nas\GOST-FA\, по которому я выбираю к.-л. файл, заблокирована логином/паролем.
если я хочу выбрать к.-л. файл, то функция поиска не срабатывает и OpenDialog не дает возможности выбрать файл
из нужной директории (открывается директирия последнего вхождения, например, диск D). это происходит до того момента,
пока я вручную не введу на сервер логин и пароль. как
сделать, чтобы при выборе файла перейти к нужному файлу, не вводя предварительно логин и пароль на сервере?
Etsareva вне форума Ответить с цитированием
Старый 20.06.2018, 09:14   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Etsareva Посмотреть сообщение
сделать, чтобы при выборе файла перейти к нужному файлу, не вводя предварительно логин и пароль на сервере?
очевидно же - никак!
Для того авторизация и нужна, чтобы запретить доступ без логина/пароля.

но, скорее всего, можно подключиться к сетевому хранилищу программно.
Но тогда логин и пароль придётся сделать доступным для программы.
Или подставьте в батнике, выполняемом перед запуском вашей программы, подключение к сетевому ресурсу.
Тогда логин/пароль, скорее всего, тоже не понадобятся
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2018, 09:18   #18
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
но, скорее всего, можно подключиться к сетевому хранилищу программно.
вот именно это мне и нужно. а пример можно или алгоритм?
Etsareva вне форума Ответить с цитированием
Старый 20.06.2018, 09:53   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

можно использовать WNetAddConnection2
например, см. тему "Подключить программно сетевой диск" - http://www.programmersforum.ru/showt...onnectNetDrive

а чем вариант с батником и командой net use не устроил?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2018, 12:22   #20
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

а чем вариант с батником и командой net use не устроил?
тоже никогда не пользовалась этой конструкцией
Etsareva вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивный поиск файлов. Pein95 Общие вопросы C/C++ 2 20.10.2013 02:00
Рекурсивный поиск минимума в массиве Михаил Роганин Помощь студентам 4 17.01.2012 14:30
рекурсивный поиск с возвратом mego4el Помощь студентам 0 25.04.2011 22:45
Рекурсивный поиск zumm Общие вопросы Delphi 7 01.11.2010 22:47
Рекурсивный поиск папок FindFirst Lehanidze Помощь студентам 4 06.08.2009 13:13