CftClub.ru
Клуб специалистов ЦФТ-Банк

Считать список файлов в Win папке

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Июн 02, 2014 15:59   Считать список файлов в Win папке Ответить с цитатой
Полезность: Нет оценки
Как можно считать список файлов в Win папке?
Планирую этот список закинуть циклом в тип "Экспорт-импорт файлов", чтобы не тыкать несколько раз в выбор файла.

Как считывать из Оракла - знаю, есть ли возможность считать с диска C:\ юзера (или сетевого)?
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПн Июн 02, 2014 16:19    Ответить с цитатой
Полезность: Нет оценки
Посмотри

операция
Обработать файлы из НО и соц. фондов

справочник
ИМНС. Протокол обмена данными с налоговым органом
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеВт Июн 03, 2014 09:30   Re: Считать список файлов в Win папке Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Как можно считать список файлов в Win папке?
Планирую этот список закинуть циклом в тип "Экспорт-импорт файлов", чтобы не тыкать несколько раз в выбор файла.

Как считывать из Оракла - знаю, есть ли возможность считать с диска C:\ юзера (или сетевого)?

Через клиент-скрипт.
Код:

sub OpenDir(p_dir)
   Set fs = CreateObject("Scripting.FileSystemObject")

   if not fs.FolderExists(p_dir) then
      MsgBox("Каталог " & p_dir & " не существует на локальной машине")
      Exit Sub
   end if

   Set folder = fs.GetFolder(p_dir)
   Set fc = folder.SubFolders

   f=""

   For Each fl In fc
      if len(f) > 10000 then
         Form1.ScriptServerValidate OK, "INS_DIR[" & p_dir & "," & f & "]"
         f = ""
      end if

      if f <> "" then
         f = f & ","
      end if

      f = f & fl.Name
   Next
   if f <> "" then
      Form1.ScriptServerValidate OK, "INS_DIR[" & p_dir & "," & f & "]"
      f = ""
   end if

   if N_FILES.Value = 1 then
      For Each filefound In folder.Files
         if len(f) > 10000 then
            Form1.ScriptServerValidate OK, "INS_FILES[" & p_dir & "," & f & "]"
            f = ""
         end if

         if filefound.Attributes and 22 then
            'Магия!
         else
            if f <> "" then
               f = f & ","
            end if

            f = f & filefound.Name
         end if
      Next
      if f <> "" then
         Form1.ScriptServerValidate OK, "INS_FILES[" & p_dir & "," & f & "]"
         f = ""
      end if
   end if
end sub

yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеВт Июн 03, 2014 09:36   Re: Считать список файлов в Win папке Ответить с цитатой
Полезность: Нет оценки
Random пишет:

Через клиент-скрипт.


А как его вызвать из секции проверки? У меня в нём есть p_dir (например С:\TEST\ ) - определяется из справочника в соответствии с подразделением пользователя.
Как вернуть список файлов через клиент скрипт?
san_light
Участник со стажем


Вступление в Клуб: 18.03.2011
СообщениеСр Июн 04, 2014 12:04    Ответить с цитатой
Полезность: 1
можно на форму добавить кнопку и параметр (или переменную) типа "строка32000", скажем P_DATA
при нажатии (валидации) кнопки запускать уже процедуру поиска файлов (в клиент-скрипте), дополнив ее записью в P_DATA.TEXT списка файлов, и тогда после выполнения скрипта в параметре (переменной) P_DATA будет список файлов

Код:

sub Files_In_Dir(p_dir)
   Set fs = CreateObject("Scripting.FileSystemObject")
   if not fs.FolderExists(p_dir) then
      MsgBox("Каталог " & p_dir & " не существует на локальной машине")
      Exit Sub
   end if

   Set folder = fs.GetFolder(p_dir)
   f=""
   For Each fl In folder.Files
      if f <> "" then
         f = f + ","
      end if
      f = f + fl.Name
   Next
   P_DATA.TEXT = f
end sub

Код:

if P_INFO = 'Кнопка' then
[CSMD].Command(V_DEST, 'Files_In_Dir("D:\TEST")')
end if;
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПт Июн 06, 2014 07:36   Re: Считать список файлов в Win папке Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Random пишет:

Через клиент-скрипт.


А как его вызвать из секции проверки? У меня в нём есть p_dir (например С:\TEST\ ) - определяется из справочника в соответствии с подразделением пользователя.
Как вернуть список файлов через клиент скрипт?


Из секции проверки - никак.
Но можно после чтения файлов в клиент-скрипте опять передать управление в секцию проверки, чтобы доделать то, что не доделал в прошлый раз.
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПт Июн 06, 2014 07:37    Ответить с цитатой
Полезность: Нет оценки
san_light пишет:
можно на форму добавить кнопку и параметр (или переменную) типа "строка32000", скажем P_DATA
при нажатии (валидации) кнопки запускать уже процедуру поиска файлов (в клиент-скрипте), дополнив ее записью в P_DATA.TEXT списка файлов, и тогда после выполнения скрипта в параметре (переменной) P_DATA будет список файлов


Список файлов может превышать 32к

В моей функции выше это учтено, поэтому она такая длинная.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru