Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
прогресс бар паралельно процессу
СергейДата: Чт, 17 Декабря 2009, 09:27 | Сообщение # 1
Необукер
Натыкался на проги, где например идет сканирование дириктории и паралельно показывается прогресс процесса
как это реализованно?!
пытался повторить, но нифига не получается, сдается мне тут нужен мега математический подход.
Если по простому с известным конечным результатом, например мы сканируем некую папку с файлами
ширина прогресс бара 200рх.
1)progres_bar=200
2)i - счетчик процесса
в папке 150 файлов
3)files=150
формула будет:
Quote
200/150*i
progres_bar/files*i
А если "files" не известно, т.е. эта переменная по мере процесса увеличивается, но конечный результат неизвестен (может быть и 130 и 240 и т.д.) + будут вложенные папки тоже содержащие файлы и для них отдельно будет запускатся сканирование
Прикрепления: progress.rar (2.4 Kb)
 
СообщениеНатыкался на проги, где например идет сканирование дириктории и паралельно показывается прогресс процесса
как это реализованно?!
пытался повторить, но нифига не получается, сдается мне тут нужен мега математический подход.
Если по простому с известным конечным результатом, например мы сканируем некую папку с файлами
ширина прогресс бара 200рх.
1)progres_bar=200
2)i - счетчик процесса
в папке 150 файлов
3)files=150
формула будет:
Quote
200/150*i
progres_bar/files*i
А если "files" не известно, т.е. эта переменная по мере процесса увеличивается, но конечный результат неизвестен (может быть и 130 и 240 и т.д.) + будут вложенные папки тоже содержащие файлы и для них отдельно будет запускатся сканирование

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 09:27
DEMBELДата: Чт, 17 Декабря 2009, 10:07 | Сообщение # 2
Наш дизайнер
ну тут 2 подхода:
- надо сперва определить кол-во (или обьем) всех файлов перед операцией
- вести счетчик по этапам операции
их в принципе можно скомбинировать.
а в каких это случаях что-то там неизвестно? перед стартом все можно определить и посчитать


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениену тут 2 подхода:
- надо сперва определить кол-во (или обьем) всех файлов перед операцией
- вести счетчик по этапам операции
их в принципе можно скомбинировать.
а в каких это случаях что-то там неизвестно? перед стартом все можно определить и посчитать

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 10:07
СергейДата: Чт, 17 Декабря 2009, 11:10 | Сообщение # 3
Необукер
Quote (DEMBEL)
а в каких это случаях что-то там неизвестно?
это когда вложенные папки, а вних есно файлы
Я делаю так:
Code
FileList "[dir]\*.*" "Files+Folders" "[tmp]"
.помещаю результат в ListBox, потом получаю общее кол-во
ListBoxSize "temp" "[size_temp]"
.перебираю результат файлы на лево, папки на право
Loop "1" "[size_temp]" "[i]"
FileExists "[dir]\[checkF]" "[ok]"
  If "[ok]" "=" "True"
   .....................
  Else
   .....................
  EndIf
   Math "200/[size_temp]*[i]" "" "[procent]"
   SizeObject "progres_bar" "[procent]" "19"
EndLoop
.с этим проблем нет, все известно все хорошо
.начинаю сканировать найденые папки, на наличие файлов
.запускается цикл...
Цикл запускается этот же по новой, но уже с другой папкой а заодно запускается по новой и прогресс бар, а я хочу прогресс общий

Добавлено (17 Декабрь 2009, 11:10)
---------------------------------------------
решение кроется в математике, но как расчитать мозга не хватает :D

 
Сообщение
Quote (DEMBEL)
а в каких это случаях что-то там неизвестно?
это когда вложенные папки, а вних есно файлы
Я делаю так:
Code
FileList "[dir]\*.*" "Files+Folders" "[tmp]"
.помещаю результат в ListBox, потом получаю общее кол-во
ListBoxSize "temp" "[size_temp]"
.перебираю результат файлы на лево, папки на право
Loop "1" "[size_temp]" "[i]"
FileExists "[dir]\[checkF]" "[ok]"
  If "[ok]" "=" "True"
   .....................
  Else
   .....................
  EndIf
   Math "200/[size_temp]*[i]" "" "[procent]"
   SizeObject "progres_bar" "[procent]" "19"
EndLoop
.с этим проблем нет, все известно все хорошо
.начинаю сканировать найденые папки, на наличие файлов
.запускается цикл...
Цикл запускается этот же по новой, но уже с другой папкой а заодно запускается по новой и прогресс бар, а я хочу прогресс общий

Добавлено (17 Декабрь 2009, 11:10)
---------------------------------------------
решение кроется в математике, но как расчитать мозга не хватает :D


Автор - Сергей
Дата добавления - 17 Декабря 2009 в 11:10
mishemДата: Чт, 17 Декабря 2009, 12:35 | Сообщение # 4
Эксперт форума
sp3d, в помощь тебе плагин hpwUtility. Там по моему все на много проще будет. ;)

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщениеsp3d, в помощь тебе плагин hpwUtility. Там по моему все на много проще будет. ;)

Автор - mishem
Дата добавления - 17 Декабря 2009 в 12:35
BodiДата: Чт, 17 Декабря 2009, 12:39 | Сообщение # 5
Ветеран форума
Quote (sp3d)
Цикл запускается этот же по новой, но уже с другой папкой а заодно запускается по новой и прогресс бар, а я хочу прогресс общий

Выходит что нужно вначале произвести общий подсчет всех файлов в данной папке и во вложенных подпапках!
А потом запускать прогрессБар и параллельно выполнять требуемые действия с этими файлами.

Для подсчета файлов я бы тебе рекомендовал использовать мою функцию, тогда не придется использовать ЛистБокс. Я ее отлично заточил для сканирования папок, только тебе нужно будет поменять копирование файлов на их подсчет...

 
Сообщение
Quote (sp3d)
Цикл запускается этот же по новой, но уже с другой папкой а заодно запускается по новой и прогресс бар, а я хочу прогресс общий

Выходит что нужно вначале произвести общий подсчет всех файлов в данной папке и во вложенных подпапках!
А потом запускать прогрессБар и параллельно выполнять требуемые действия с этими файлами.

Для подсчета файлов я бы тебе рекомендовал использовать мою функцию, тогда не придется использовать ЛистБокс. Я ее отлично заточил для сканирования папок, только тебе нужно будет поменять копирование файлов на их подсчет...


Автор - Bodi
Дата добавления - 17 Декабря 2009 в 12:39
BodiДата: Чт, 17 Декабря 2009, 12:44 | Сообщение # 6
Ветеран форума
А вообще в таком случае, когда не известно время выполнения задачи, я бы использовал циклический прогрессБар, лучше круговой:
Прикрепления: 5941577.gif (3.1 Kb)
 
СообщениеА вообще в таком случае, когда не известно время выполнения задачи, я бы использовал циклический прогрессБар, лучше круговой:

Автор - Bodi
Дата добавления - 17 Декабря 2009 в 12:44
DEMBELДата: Чт, 17 Декабря 2009, 13:17 | Сообщение # 7
Наш дизайнер
Quote (Bodi)
бы использовал циклический прогрессБар, лучше круговой:

да, кстати, обычно так и делают


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (Bodi)
бы использовал циклический прогрессБар, лучше круговой:

да, кстати, обычно так и делают

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 13:17
СергейДата: Чт, 17 Декабря 2009, 13:44 | Сообщение # 8
Необукер
Quote (Bodi)
А вообще в таком случае, когда не известно время выполнения задачи, я бы использовал циклический прогрессБар, лучше круговой:
у меня сейчас такой, неприкалывает :D
Quote (DEMBEL)
да, кстати, обычно так и делают
это где?! если только на сайтах, в прогах делают иначе
У меня есть прога-чистилка, которая ищет ненужные файлы, вот там сканируется диск и попутно идет прогресс
Прикрепления: 3773203.jpg (15.2 Kb)
 
Сообщение
Quote (Bodi)
А вообще в таком случае, когда не известно время выполнения задачи, я бы использовал циклический прогрессБар, лучше круговой:
у меня сейчас такой, неприкалывает :D
Quote (DEMBEL)
да, кстати, обычно так и делают
это где?! если только на сайтах, в прогах делают иначе
У меня есть прога-чистилка, которая ищет ненужные файлы, вот там сканируется диск и попутно идет прогресс

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 13:44
DEMBELДата: Чт, 17 Декабря 2009, 13:54 | Сообщение # 9
Наш дизайнер
ну тогда мозгой пошевели. общее количество мест где ищутся папки тебе же известно? если только не на всем компе все подряд смотреть, обычно чистятся папки в определенных местах, их набор ограничен. так вот посчитай, в каких локациях ищутся и чистятся папки и в скрипте очистки папок раздели кол-во папок и файлов на количество локаций. Да и если даже искать по всему диску, то раздели количество найденных папок и файлов на кол-во папок корневого каталога. Так у тебя получится, что в каждый момент времени будет считаться процент только определенной группы файлов+папок, которые просматриваются в этот момент, а в конце складываться в общее кол-во. Идея понятна?

Добавлено (17 Декабрь 2009, 13:54)
---------------------------------------------
А для получения инфы о количестве папок/файлов лучше не перебирать их а воспользоваться скриптом, который просто прочитает эту инфу с файловой системы на винчестере, а то долго перебирать придется.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениену тогда мозгой пошевели. общее количество мест где ищутся папки тебе же известно? если только не на всем компе все подряд смотреть, обычно чистятся папки в определенных местах, их набор ограничен. так вот посчитай, в каких локациях ищутся и чистятся папки и в скрипте очистки папок раздели кол-во папок и файлов на количество локаций. Да и если даже искать по всему диску, то раздели количество найденных папок и файлов на кол-во папок корневого каталога. Так у тебя получится, что в каждый момент времени будет считаться процент только определенной группы файлов+папок, которые просматриваются в этот момент, а в конце складываться в общее кол-во. Идея понятна?

Добавлено (17 Декабрь 2009, 13:54)
---------------------------------------------
А для получения инфы о количестве папок/файлов лучше не перебирать их а воспользоваться скриптом, который просто прочитает эту инфу с файловой системы на винчестере, а то долго перебирать придется.


Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 13:54
СергейДата: Чт, 17 Декабря 2009, 14:01 | Сообщение # 10
Необукер
DEMBEL, сканируется 2-3 папки, но вних неизвестное количество папок и файлов, как в TEMP, неизвестно, кто и сколько туда распакует, ну жа ладно, я всеравно не догнал твою идею
Quote (DEMBEL)
а воспользоваться скриптом,
а по подробней или примерчег redface
 
СообщениеDEMBEL, сканируется 2-3 папки, но вних неизвестное количество папок и файлов, как в TEMP, неизвестно, кто и сколько туда распакует, ну жа ладно, я всеравно не догнал твою идею
Quote (DEMBEL)
а воспользоваться скриптом,
а по подробней или примерчег redface

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 14:01
DEMBELДата: Чт, 17 Декабря 2009, 14:10 | Сообщение # 11
Наш дизайнер
Quote (sp3d)
сканируется 2-3 папки, но вних неизвестное количество папок и файлов, как в TEMP,

ну вот, идешь в одну папку, считаешь кол-во элементов в ней, а верхний порог для процентов делаешь не 100 а 100/кол-во папок, т.е. 50 или 33. по проверке всех 2(3) папок получишь общий процент. весь вопрос в том как узнать количество элементов в отдельных папках, так?

Добавлено (17 Декабрь 2009, 14:10)
---------------------------------------------

Quote (DEMBEL)
- вести счетчик по этапам операции

вот по этому принципу. сколько папок - столько этапов.
Quote (DEMBEL)
их в принципе можно скомбинировать.

во время каждого этапа считаешь его процент, потом прибавляешь к нему процент следующих этапов. max процент этапа = 100/кол-во этапов.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
сканируется 2-3 папки, но вних неизвестное количество папок и файлов, как в TEMP,

ну вот, идешь в одну папку, считаешь кол-во элементов в ней, а верхний порог для процентов делаешь не 100 а 100/кол-во папок, т.е. 50 или 33. по проверке всех 2(3) папок получишь общий процент. весь вопрос в том как узнать количество элементов в отдельных папках, так?

Добавлено (17 Декабрь 2009, 14:10)
---------------------------------------------

Quote (DEMBEL)
- вести счетчик по этапам операции

вот по этому принципу. сколько папок - столько этапов.
Quote (DEMBEL)
их в принципе можно скомбинировать.

во время каждого этапа считаешь его процент, потом прибавляешь к нему процент следующих этапов. max процент этапа = 100/кол-во этапов.

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 14:10
СергейДата: Чт, 17 Декабря 2009, 14:14 | Сообщение # 12
Необукер
Quote (DEMBEL)
вопрос в том как узнать количество элементов в отдельных папках, так?
нет, вопрос, про скрипт, а то что ты предлагаешь, я уже делал, работает не так как положено

Добавлено (17 Декабрь 2009, 14:14)
---------------------------------------------

Quote (DEMBEL)
max процент этапа = 100/кол-во этапов.
эти варианты я уже проделывал, в одном случае работает, в другом(помоемому когда папка в папке и они пустые)работает не корректно, может с помощью вбс?!
я то хочу чтоб у меня все попутно решалось, а не сначало сканировать, а потом показывать прогресс :D
 
Сообщение
Quote (DEMBEL)
вопрос в том как узнать количество элементов в отдельных папках, так?
нет, вопрос, про скрипт, а то что ты предлагаешь, я уже делал, работает не так как положено

Добавлено (17 Декабрь 2009, 14:14)
---------------------------------------------

Quote (DEMBEL)
max процент этапа = 100/кол-во этапов.
эти варианты я уже проделывал, в одном случае работает, в другом(помоемому когда папка в папке и они пустые)работает не корректно, может с помощью вбс?!
я то хочу чтоб у меня все попутно решалось, а не сначало сканировать, а потом показывать прогресс :D

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 14:14
DEMBELДата: Чт, 17 Декабря 2009, 14:17 | Сообщение # 13
Наш дизайнер
это еще почему не так? приведи конкретные условия в каких папках что искать
Quote (sp3d)
вопрос, про скрипт

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


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеэто еще почему не так? приведи конкретные условия в каких папках что искать
Quote (sp3d)
вопрос, про скрипт

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

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 14:17
СергейДата: Чт, 17 Декабря 2009, 14:19 | Сообщение # 14
Необукер
DEMBEL, а на вбс мона узнать общий размер папки?! попробую с помощью размеров

Сообщение отредактировано
sp3d - Чт, 17 Декабря 2009, 14:23
 
СообщениеDEMBEL, а на вбс мона узнать общий размер папки?! попробую с помощью размеров

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 14:19
DEMBELДата: Чт, 17 Декабря 2009, 14:21 | Сообщение # 15
Наш дизайнер
Quote (sp3d)
DEMBEL, а на вбс мона узнать общий размер папки?!

вроде да. можно узнавать все размеры а также количество вложенных элементов (папки, файлы) в любой папке. тебе что надо узнать? можно кстати вести прогресс не по кол-ву элементов, а по размеру (допустим, в случае копирования или удаления, ну или еще чего-то где меняется размер)


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
DEMBEL, а на вбс мона узнать общий размер папки?!

вроде да. можно узнавать все размеры а также количество вложенных элементов (папки, файлы) в любой папке. тебе что надо узнать? можно кстати вести прогресс не по кол-ву элементов, а по размеру (допустим, в случае копирования или удаления, ну или еще чего-то где меняется размер)

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 14:21
СергейДата: Чт, 17 Декабря 2009, 14:22 | Сообщение # 16
Необукер
Quote (DEMBEL)
какую конкретно информацию надо узнать в скрипте? количество файлов и подпапок отдельно в папке или общее количество файлов, или еще чтото?
я так поинимаю, твой скрипт будет в цикле перебирать и подсчитывать файлы, да?!
 
Сообщение
Quote (DEMBEL)
какую конкретно информацию надо узнать в скрипте? количество файлов и подпапок отдельно в папке или общее количество файлов, или еще чтото?
я так поинимаю, твой скрипт будет в цикле перебирать и подсчитывать файлы, да?!

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 14:22
DEMBELДата: Чт, 17 Декабря 2009, 14:25 | Сообщение # 17
Наш дизайнер
Quote (sp3d)
я так поинимаю, твой скрипт будет в цикле перебирать и подсчитывать файлы, да?!

ничего перебирать не будет, вся эта информация хранится в таблице размещения файлов винчестера (FAT, MFT), и читается оттуда.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
я так поинимаю, твой скрипт будет в цикле перебирать и подсчитывать файлы, да?!

ничего перебирать не будет, вся эта информация хранится в таблице размещения файлов винчестера (FAT, MFT), и читается оттуда.

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 14:25
СергейДата: Чт, 17 Декабря 2009, 14:34 | Сообщение # 18
Необукер
это типа этого?!
Code
Set WshShell = WScript.CreateObject("WScript.Shell")  
Set oFS = CreateObject("Scripting.FileSystemObject")  
   
sPath = WshShell.ExpandEnvironmentStrings("%Temp%")  
Set oDir = oFS.GetFolder(sPath)
 
Сообщениеэто типа этого?!
Code
Set WshShell = WScript.CreateObject("WScript.Shell")  
Set oFS = CreateObject("Scripting.FileSystemObject")  
   
sPath = WshShell.ExpandEnvironmentStrings("%Temp%")  
Set oDir = oFS.GetFolder(sPath)

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 14:34
DEMBELДата: Чт, 17 Декабря 2009, 14:43 | Сообщение # 19
Наш дизайнер
типа этого
Code
dim oFS, oFolder
set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")   
sPath = WshShell.ExpandEnvironmentStrings("%Temp%")   
Set oFolder = oFS.GetFolder(sPath)

ShowFolderDetails oFolder

sub ShowFolderDetails(oF)
dim F
     wscript.echo oF.Name & ":Размер=" & oF.Size
     wscript.echo oF.Name & ":#файлов=" & oF.Files.Count
     wscript.echo oF.Name & ":#папок=" & oF.Subfolders.count
     for each F in oF.Subfolders
         ShowFolderDetails(F)
     next
end sub

это как видишь для Temp, для конкретной папки напиши ее путь в oFS.GetFolder вместо sPath


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениетипа этого
Code
dim oFS, oFolder
set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")   
sPath = WshShell.ExpandEnvironmentStrings("%Temp%")   
Set oFolder = oFS.GetFolder(sPath)

ShowFolderDetails oFolder

sub ShowFolderDetails(oF)
dim F
     wscript.echo oF.Name & ":Размер=" & oF.Size
     wscript.echo oF.Name & ":#файлов=" & oF.Files.Count
     wscript.echo oF.Name & ":#папок=" & oF.Subfolders.count
     for each F in oF.Subfolders
         ShowFolderDetails(F)
     next
end sub

это как видишь для Temp, для конкретной папки напиши ее путь в oFS.GetFolder вместо sPath


Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 14:43
СергейДата: Чт, 17 Декабря 2009, 14:49 | Сообщение # 20
Необукер
если без вывода то так?!
Code
folder="[%1]"
set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
sPath = WshShell.ExpandEnvironmentStrings(folder)
Set oFolder = oFS.GetFolder(sPath)
publication.nbSetVar "[%2]", oFolder
 
Сообщениеесли без вывода то так?!
Code
folder="[%1]"
set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
sPath = WshShell.ExpandEnvironmentStrings(folder)
Set oFolder = oFS.GetFolder(sPath)
publication.nbSetVar "[%2]", oFolder

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 14:49
СергейДата: Чт, 17 Декабря 2009, 14:52 | Сообщение # 21
Необукер
не получилось
Прикрепления: 3204195.jpg (7.8 Kb)
 
Сообщениене получилось

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 14:52
DEMBELДата: Чт, 17 Декабря 2009, 14:56 | Сообщение # 22
Наш дизайнер
Quote (sp3d)
publication.nbSetVar "[%2]", oFolder

нет, а где же свойства обьекта oFolder?

publication.nbSetVar "[%2]", oFolder.Size
publication.nbSetVar "[%3]", oFolder.Files.Count
publication.nbSetVar "[%4]", oFolder.Subfolders.count

Добавлено (17 Декабрь 2009, 14:53)
---------------------------------------------

Quote (sp3d)
не получилось

вот говно, опять этот WScript

Добавлено (17 Декабрь 2009, 14:56)
---------------------------------------------
Убери эти строчки

Code
Set WshShell = WScript.CreateObject("WScript.Shell")  
sPath = WshShell.ExpandEnvironmentStrings(folder)

они были нужны для получения переменных окружения %Temp%

если нужно конкретную папку, то просто напиши
Set oFolder = oFS.GetFolder("Путь_к_папке")


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
publication.nbSetVar "[%2]", oFolder

нет, а где же свойства обьекта oFolder?

publication.nbSetVar "[%2]", oFolder.Size
publication.nbSetVar "[%3]", oFolder.Files.Count
publication.nbSetVar "[%4]", oFolder.Subfolders.count

Добавлено (17 Декабрь 2009, 14:53)
---------------------------------------------

Quote (sp3d)
не получилось

вот говно, опять этот WScript

Добавлено (17 Декабрь 2009, 14:56)
---------------------------------------------
Убери эти строчки

Code
Set WshShell = WScript.CreateObject("WScript.Shell")  
sPath = WshShell.ExpandEnvironmentStrings(folder)

они были нужны для получения переменных окружения %Temp%

если нужно конкретную папку, то просто напиши
Set oFolder = oFS.GetFolder("Путь_к_папке")


Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 14:56
СергейДата: Чт, 17 Декабря 2009, 15:10 | Сообщение # 23
Необукер
Code
sTem="[%1]"
set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFS.GetFolder(sTem)
publication.nbSetVar "[%2]", oFolder.Size
таже ошибка :)
 
Сообщение
Code
sTem="[%1]"
set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFS.GetFolder(sTem)
publication.nbSetVar "[%2]", oFolder.Size
таже ошибка :)

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 15:10
DEMBELДата: Чт, 17 Декабря 2009, 15:23 | Сообщение # 24
Наш дизайнер
а если тебе не нужны параметры вложенных папок то процедуру
Code
ShowFolderDetails oFolder   

sub ShowFolderDetails(oF)   
dim F   
       wscript.echo oF.Name & ":Размер=" & oF.Size   
       wscript.echo oF.Name & ":#файлов=" & oF.Files.Count   
       wscript.echo oF.Name & ":#папок=" & oF.Subfolders.count   
       for each F in oF.Subfolders   
           ShowFolderDetails(F)   
       next   
end sub

можешь выкинуть. она просто при нахождении подпапки в папке запускает процедуру снова в цикле, при нахождении еще подпапок - снова запускает, пока не выдаст параметры отдельно для каждой вложенной папки. Если интересует только общие параметры для одной папки то просто присвой значения в переменные как я написал выше.

Добавлено (17 Декабрь 2009, 15:11)
---------------------------------------------
вот срань. ну ка я попробую по другому.

Добавлено (17 Декабрь 2009, 15:23)
---------------------------------------------
Ну недоглядел, копи пасте было... убери слово WScript тут
set oFS = WScript.CreateObject("Scripting.FileSystemObject")

Code
dim oFS, oFolder
set oFS = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFS.GetFolder("[%1]")

publication.nbSetVar "[S]", oFolder.Size
publication.nbSetVar "[FC]", oFolder.Files.Count
publication.nbSetVar "[SC]", oFolder.Subfolders.count

работает


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеа если тебе не нужны параметры вложенных папок то процедуру
Code
ShowFolderDetails oFolder   

sub ShowFolderDetails(oF)   
dim F   
       wscript.echo oF.Name & ":Размер=" & oF.Size   
       wscript.echo oF.Name & ":#файлов=" & oF.Files.Count   
       wscript.echo oF.Name & ":#папок=" & oF.Subfolders.count   
       for each F in oF.Subfolders   
           ShowFolderDetails(F)   
       next   
end sub

можешь выкинуть. она просто при нахождении подпапки в папке запускает процедуру снова в цикле, при нахождении еще подпапок - снова запускает, пока не выдаст параметры отдельно для каждой вложенной папки. Если интересует только общие параметры для одной папки то просто присвой значения в переменные как я написал выше.

Добавлено (17 Декабрь 2009, 15:11)
---------------------------------------------
вот срань. ну ка я попробую по другому.

Добавлено (17 Декабрь 2009, 15:23)
---------------------------------------------
Ну недоглядел, копи пасте было... убери слово WScript тут
set oFS = WScript.CreateObject("Scripting.FileSystemObject")

Code
dim oFS, oFolder
set oFS = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFS.GetFolder("[%1]")

publication.nbSetVar "[S]", oFolder.Size
publication.nbSetVar "[FC]", oFolder.Files.Count
publication.nbSetVar "[SC]", oFolder.Subfolders.count

работает

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 15:23
СергейДата: Чт, 17 Декабря 2009, 15:31 | Сообщение # 25
Необукер
DEMBEL, СПС работает :D
 
СообщениеDEMBEL, СПС работает :D

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 15:31
DEMBELДата: Чт, 17 Декабря 2009, 15:39 | Сообщение # 26
Наш дизайнер
а если надо инфу для всех вложенных папок, то можно оставить цикл и прописать там команды складывания параметров в необушный массив или Листбокс, потом доставать их в проекте.

Добавлено (17 Декабрь 2009, 15:39)
---------------------------------------------
для папки и файлов доступны и другие свойства


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеа если надо инфу для всех вложенных папок, то можно оставить цикл и прописать там команды складывания параметров в необушный массив или Листбокс, потом доставать их в проекте.

Добавлено (17 Декабрь 2009, 15:39)
---------------------------------------------
для папки и файлов доступны и другие свойства


Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 15:39
СергейДата: Чт, 17 Декабря 2009, 16:51 | Сообщение # 27
Необукер
Quote (DEMBEL)
для папки и файлов доступны и другие свойства
познавательно, эти посты бы в тему вбс и нб
DEMBEL, а запрет на показ ошибок есть в вбс?!

Добавлено (17 Декабрь 2009, 16:51)
---------------------------------------------

Quote (sp3d)
DEMBEL, а запрет на показ ошибок есть в вбс?!
все нашел :)
 
Сообщение
Quote (DEMBEL)
для папки и файлов доступны и другие свойства
познавательно, эти посты бы в тему вбс и нб
DEMBEL, а запрет на показ ошибок есть в вбс?!

Добавлено (17 Декабрь 2009, 16:51)
---------------------------------------------

Quote (sp3d)
DEMBEL, а запрет на показ ошибок есть в вбс?!
все нашел :)

Автор - Сергей
Дата добавления - 17 Декабря 2009 в 16:51
DEMBELДата: Чт, 17 Декабря 2009, 21:36 | Сообщение # 28
Наш дизайнер
on error resume next - переходить на другую строчку при ошибке, обработка ошибки через обьект Err -
Err.Number (номер ошибки),
Err.Description (описание ошибки),
Err.Clear (очистить переменную). Например:
Code
On Error Resume Next
Err.Clear
... операции где отловить ошибки
...
If  Err.Number <> 0  then     
      MsgBox "Ошибка:" & vbCrLf &_
          "    Номер: " & Err.Number & vbCrLf &_
          "    Описание: '" & Err.Description & vbCrLf
End If

on error resume 0 - выключить обработку ошибок (в смысле, отключить их игнорирование и отловку, окна с ошибками снова будут вылезать)


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеon error resume next - переходить на другую строчку при ошибке, обработка ошибки через обьект Err -
Err.Number (номер ошибки),
Err.Description (описание ошибки),
Err.Clear (очистить переменную). Например:
Code
On Error Resume Next
Err.Clear
... операции где отловить ошибки
...
If  Err.Number <> 0  then     
      MsgBox "Ошибка:" & vbCrLf &_
          "    Номер: " & Err.Number & vbCrLf &_
          "    Описание: '" & Err.Description & vbCrLf
End If

on error resume 0 - выключить обработку ошибок (в смысле, отключить их игнорирование и отловку, окна с ошибками снова будут вылезать)

Автор - DEMBEL
Дата добавления - 17 Декабря 2009 в 21:36
  • Страница 1 из 1
  • 1
Поиск: