Имя: Пароль:
1C
 
как перебрать все элементы коллекции значений в 1с 7.7?
0 zhlob_y2k
 
13.03.08
13:30
как перебрать все элементы коллекции значений в 1с 7.7?
1 Vitello
 
13.03.08
13:30
В 7.7 есть коллекции значений?
2 Ёпрст2
 
13.03.08
13:30
(0) Здесь вам не тут ...
3 ShoGUN
 
13.03.08
13:33
(0) Весело. Раньше с 7.7 на 8 переходили - офигевали, теперь обратно - тоже офигевают...
4 у лю 427
 
13.03.08
13:35
список значений - смотрим ЖКК - перебор по номеру
5 zhlob_y2k
 
13.03.08
13:36
FSO=СоздатьОбъект("Scripting.FileSystemObject");
Folder=FSO.GetFolder("C:\");
Folder.SubFolders - коллекция, которая обходится For Each

Как в 7.7??
6 Vitello
 
13.03.08
13:36
мды, телепат ни у кого не сработал...
7 FreeFin
 
13.03.08
13:36
ыыы так это восьмерка, а уж подумалось, что ...(не важно что подумалось = это не правда) )))

Массив
Список значений
Таблица значений
Структура
Соответствие
(0)
Что те перебрать-то нужно, формулирующий наш?
8 zhlob_y2k
 
13.03.08
13:39
перебрать нужно поддиректории
9 FreeFin
 
13.03.08
13:39
(5) Замени вопрос: как наложить фильтр на массив значений и выбрать отфильтрованное. может кто и начнет чонить понимать... я по-ка не очень понимаю.
10 zhlob_y2k
 
13.03.08
13:41
Вот метод:
SubFolders
Возвращаемое значение:
Объект-коллекция "Folders", содержащая все подкаталоги данного каталога, включая скрытые и системные.
Как мне обойти (перебрать значения) этой коллекции в 1с 7.7
11 mikecool
 
13.03.08
13:43
(10) типа
Для Сч=1 ПО SubFolders.Count Цикл
???
12 zhlob_y2k
 
13.03.08
13:44
а дальше??
13 FreeFin
 
13.03.08
13:44
(8) а прошлой ветки ссылку не осилил?...ну скопипастю

Перем Каталог;
Процедура СканироватьКаталог(Каталог)
Перем А;
    ФСО=СоздатьОбъект("ФС");
    Ф=ФСО.НайтиПервыйФайл(Каталог+"*");
    Пока Ф<>"" Цикл
         Если (Ф<>".")И(Ф<>"..") Тогда
              ФС.АтрибутыФайла(Каталог+Ф,,А);
              Если Сред(А,4,1)="1" Тогда СканироватьКаталог(Каталог+Ф+"\") КонецЕсли;
         КонецЕсли;
         Сообщить(Каталог+Ф);
         Ф=ФСО.НайтиСледующийФайл();
    КонецЦикла;
КонецПроцедуры

Процедура Сформировать()
Каталог="C:\";
СканироватьКаталог(Каталог);
КонецПроцедуры
14 mikecool
 
13.03.08
13:45
(12) что дальше? я не знаю чего тебе надо дальше...
получай SubFolder.Item[Сч] - типа так, и делай что хошь
15 zhlob_y2k
 
13.03.08
13:48
эта шляпа не подходит, слишком долго работает, если в папке много файлов + почему-то в выборку попадают файлы
16 FreeFin
 
13.03.08
14:01
(15) здииишь, но подправлю, чтобы только директории и тмп-шки от директорий(а такие тоже есть) попадали:

//*******************************************
Перем Каталог,Час,Минут,Сукунд;
Процедура СканироватьКаталог(Каталог)
Перем Атр,Размер;
    ФСО=СоздатьОбъект("ФС");
СписокКат=СоздатьОбъект("СписокЗначений");    
    Ф=ФСО.НайтиПервыйФайл(Каталог+"*");
    Пока Ф<>"" Цикл
         Если (Ф<>".")И(Ф<>"..") Тогда
              ФС.АтрибутыФайла(Каталог+Ф,,Атр);
              //четвертый символ: если ''1'' - каталог;
              Если (Сред(Атр,4,1)="1") Тогда
              //Сообщить(Каталог+Ф);
              СписокКат.ДобавитьЗначение(Каталог+Ф);
              СканироватьКаталог(Каталог+Ф+"\")
              КонецЕсли;
         КонецЕсли;
         Ф=ФСО.НайтиСледующийФайл();
    КонецЦикла;
КонецПроцедуры

Процедура Сформировать()
ТекВремя=ТекущееВремя(Час,Минут,Сукунд);
Сообщить("Начало "+ТекВремя);
Каталог="C:\";
СканироватьКаталог(Каталог);
ТекВремя=ТекущееВремя(Час,Минут,Сукунд);
Сообщить("Окончание "+ТекВремя);
КонецПроцедуры


///  весь диск С 12 ГБ
Начало 12:59:43
Окончание 12:59:52

слишком долго?
17 FreeFin
 
13.03.08
14:02
+(16) На Сообщить() одинэсина много времени тратит.
18 Mikeware
 
13.03.08
14:46
(10) А IFolderCollection.Count и IFolderCollection.Item - уже отменили?
19 VicAlex
 
13.03.08
15:08
(0)Это ж такое можно спросить после страшного бодуна.
Клоун-то где?
20 zhlob_y2k
 
17.03.08
06:16
Огромное всем спасибо... видимо немного переработал
AdBlock убивает бесплатный контент. 1Сергей