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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2012, 22:22   #1
salwator
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 31
По умолчанию дерево каталогов

Всем привет!!У меня такая проблема))Не могу понять почему у меня ничего не выводит в компоненту TreeView , хотя транслятор всё пропускает)подскажите в чём проблема.

Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
// Для поиска файлов в каталоге и его подкаталогах напишите следующий код:
void ListFiles(AnsiString path, TStrings* List)
{

// Эта процедура выводит список файлов и вызывает
// саму себя для всех каталогов
TSearchRec sr;

Form1->TreeView1->Items->Add(NULL, "My computer");

if (FindFirst(path+"*.*", faAnyFile, sr) == 0)
{
do
{
if (sr.Attr & faDirectory)
{
if (sr.Name!=".")
if (sr.Name!="..")
{
ListFiles(path+sr.Name+"",List);// Рекурсивный вызов
}
}
else
{
Form1->TreeView1->Items->AddChild(Form1->TreeView1->Items->Item[0], sr.Name);
}
}
while (FindNext(sr) == 0);
FindClose(sr);
}
Application->ProcessMessages();
}

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{

}

Последний раз редактировалось Stilet; 12.05.2012 в 22:44.
salwator вне форума Ответить с цитированием
Старый 13.05.2012, 08:53   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Переменной path не присвоено значение.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 13.05.2012, 17:38   #3
salwator
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 31
По умолчанию

так ей по моему ничего присваивать и не нужно

вот решил сделать по другому,но у меня не получается зайти в подкаталог))



Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <FileCtrl.hpp> // для доступа к SelectDirectory
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
TSearchRec String;


TreeView1->Items->Add(NULL, "My computer");

for (int a = 65; a< 91; a++)
	{
	AnsiString A = char(a);
	AnsiString B = ":\\";
	AnsiString C = "*.*";

	if (FindFirst(A + B + C, faDirectory, String) == 0)
	{
		TreeView1->Items->AddChild(TreeView1->Items->Item[0], A + B);

		for (int b = 0; b < TreeView1->Items->Count; b++)
		{
			if(TreeView1->Items->Item[b]->Text == A + B)
		   			{
		   
	   if ( FindFirst(A+B+C, faDirectory, String) == 0)
		  do
						  {
							TreeView1->Items->AddChild(TreeView1->Items->
							Item[b], String.Name);
							}
							while ( FindNext(String) == 0 );
											   }
		 						FindClose(String);
									}

								}
				FindClose(String);
		}
}

Последний раз редактировалось Stilet; 26.05.2012 в 08:23.
salwator вне форума Ответить с цитированием
Старый 25.05.2012, 12:30   #4
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

Какие ошибки выдает?
Марат05 вне форума Ответить с цитированием
Старый 25.05.2012, 22:46   #5
salwator
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 31
По умолчанию

ошибок нет.траслятор всё прпускает.в TreeView выводит только диски и каталоги в дисках,а то что в подкаалогах не выводит.не получается сделать так чтобы выводило и подкаталоги.
salwator вне форума Ответить с цитированием
Старый 26.05.2012, 14:15   #6
salwator
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 31
По умолчанию

я уже сделал чтобы у меня заходило в подкаталоги и выводило,но появилась другая проблема.все папки которые я нашёл во всех подкаталогах у меня выводит в первом подкаталоге.как сделать так,чтобы найденные папки выводились правильно??

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <FileCtrl.hpp> // для доступа к SelectDirectory
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString oldDir;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
TSearchRec String,String1;
int i=0;
AnsiString path;
TreeView1->Items->Add(NULL, "My computer");

for (int a = 65; a< 91; a++)
	{
	 AnsiString A = char(a);
	 AnsiString B = ":\\";
	 AnsiString C = "*.*";

	 if (FindFirst(A + B + C, faDirectory, String) == 0)
		{
		TreeView1->Items->AddChild(TreeView1->Items->Item[0], A + B);
		for (int b = 0; b < TreeView1->Items->Count; b++)
			{
			 if(TreeView1->Items->Item[b]->Text == A + B)
				{
				if (FindFirst(A + B + C, faDirectory, String) == 0)
				{
				do
					{
					TreeView1->Items->AddChild(TreeView1->Items->Item[b], String.Name);
					if(String.Attr==faDirectory)
						if (FindFirst(A + B +String.Name+"\\"+C, faAnyFile, String1) == 0)
							do
								{
								TreeView1->Items->AddChild(TreeView1->Items->Item[b+1], String1.Name);
								}
							while (FindNext(String1) == 0);
                    FindClose(String1);
					}
				while (FindNext(String) == 0);

				FindClose(String);
				}
				}
			 }
		}

	 }
	 FindClose(String);

}
//---------------------------------------------------------------------------
salwator вне форума Ответить с цитированием
Старый 27.05.2012, 20:22   #7
salwator
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 31
По умолчанию

возможно я с циклом запутался или вывод не правильный написал.помогите разобраться
salwator вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Tree - иерархическое дерево каталогов. Идеи?! Dodge_wow Общие вопросы C/C++ 1 08.05.2012 13:24
Шифрование каталогов buenosaire Помощь студентам 2 09.05.2010 12:19
[C++] дерево каталогов Akord Помощь студентам 0 17.12.2009 17:07
Дерево каталогов в табличной форме Македонский Общие вопросы Delphi 11 30.08.2007 16:47
древо каталогов Dunpeal Компоненты Delphi 6 21.11.2006 06:22