Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DirList / 9 сообщений из 9, страница 1 из 1
22.07.2008, 16:38
    #35445242
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
Имеется папка ААА, в которой файлы и папка ВВВ. В папке ВВВ - файлы и папка ССС и т.д.
Как можно получить список всех файлов из ААА, ВВВ, ССС и т.д.?
Вот это:
Код: plaintext
llb_1.DirList(ls_first_folder_pass,  16400 )
выдает файлы только из папки ААА
...
Рейтинг: 0 / 0
22.07.2008, 16:51
    #35445279
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
RiskaИмеется папка ААА, в которой файлы и папка ВВВ. В папке ВВВ - файлы и папка ССС и т.д.
Как можно получить список всех файлов из ААА, ВВВ, ССС и т.д.?
Вот это:
Код: plaintext
llb_1.DirList(ls_first_folder_pass,  16400 )
выдает файлы только из папки ААА
Задача на рекурсию.
...
Рейтинг: 0 / 0
22.07.2008, 16:54
    #35445286
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
Кхм... Вообще-то файловая структура, Вами описанная, - это дерево... И каким это макаром Вы хотите получить дерево одним оператором? И, главное, в каком виде?
------------
С уважением, IKAR

IkarHomeCenter ........ Детский Дворик ........ ГавГав.Инфо
Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
22.07.2008, 16:57
    #35445293
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
Ikar wrote:

> главное, в каком виде?

Думаю, в виде списка имён с полным путём.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.07.2008, 17:05
    #35445321
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
Локшин МаркЗадача на рекурсию.
Dim2000Думаю, в виде списка имён с полным путём.
Все верно. У кого-нибудь есть готовое решение?
...
Рейтинг: 0 / 0
22.07.2008, 17:40
    #35445410
roleks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
1 клас, 2 четверть
учите матчасть как говорится.
имхо, написать мин. 10-15 функцию.
разве это сложно самому?
...
Рейтинг: 0 / 0
22.07.2008, 19:00
    #35445616
Uzrptav
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
На вскидку, получить список всех файлов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
$PBExportHeader$findfile.srf
global type findfile from function_object
end type

forward prototypes
global function integer findfile (string start_dir, string exten)
end prototypes

global function integer findfile (string start_dir, string exten);
/*********************************************************************************************************************
*							СЫРОЙ ШАБЛОН ДЛЯ ПОИСКА ФАЙЛОВ			*
*********************************************************************************************************************/
LONG len1,i,dir_count,j
string s_fname1, SS3,SSS4,ls_curdir,s[]

		
		exten = "*.*"
		
		SSS4 =  start_dir + '\'  //DIR
		ls_curdir =sss4 + exten
		i22 =FindFirstFileA(ls_curdir,ss2)
		len1 =upperbound(ss2.i9)
		
		m1:
		

		s_fname1 =trim(sss4 + ss3)
		
			IF ss2.i1=  16  and ss2.i9 <> '.' and ss2.i9 <> '..' THEN 
				i++
				s[i] = start_dir + ss2.i9         //Массив с директориями
				
			 elseif ss2.i9 <> '.' and ss2.i9 <> '..' THEN
				 file_rab(start_dir,ss2.i9)
				
			END IF
			

/*******************************************************************************************************************
*					КОНЕЦ ОСНОВНОГО БЛОКА 								 *
*******************************************************************************************************************/			
		ss3 =''
		ss2.i9 =''
				
		IF FindNextFileA(i22,ss2) THEN
			goto m1
		END IF				

									dir_count = upperbound(s[])
	IF dir_count >  0  THEN
		for j =  1  to dir_count
                       /************************
                        *  рекурсивное обращение     *
                        ************************/
			Findfile(s[j], exten)
		next
	END IF
					
					FindClose(i22)
						return  1 
end function

Структура для FindFirstFileA, FindNextFileA
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$PBExportHeader$ss1.srs
global type ss1 from structure
	unsignedlong		i1
	unsignedlong		i2
	unsignedlong		i2_1
	unsignedlong		i3
	unsignedlong		i3_1
	unsignedlong		i4
	unsignedlong		i4_1
	unsignedlong		i5
	unsignedlong		i6
	unsignedlong		i7
	unsignedlong		i8
	character		i9[ 256 ]
	character		i10[ 14 ]
end type

Код: plaintext
1.
Function ulong FindFirstFileA(ref string currentdir, ref ss1 ss0) LIBRARY "Kernel32.dll"
Function boolean FindNextFileA(ulong i1,ref ss1 ss01)LIBRARY "Kernel32.dll"

Вроде бы ничего не забыл )))
...
Рейтинг: 0 / 0
23.07.2008, 11:03
    #35446425
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
RiskaВ комплекте с РВ идет демо-файл с примерами. В нем есть пример на эту тему с двумя варианта рекурсии по файлам.
...
Рейтинг: 0 / 0
24.07.2008, 13:59
    #35449538
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DirList
Thanx.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DirList / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]