Форум программистов Контакты:
О проблемах с регистрацией, почтой и по другим вопросам пишите сюда - post@programmersforum.ru
По необходимости будем регистрировать вручную. И проверяйте папку спам!
Главная  |  Правила форума  |  Исходники Delphi  |  Основы Delphi  |  Блог программистов  |  Рассылка  |  Повторная активизация e-mail  | 

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

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

Всем привет!!У меня такая проблема))Не могу понять почему у меня ничего не выводит в компоненту 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 в 21:44.
salwator вне форума   Ответить с цитированием
Старый 13.05.2012, 07:53   #2
Smitt&Wesson
Заблокирован
 
Регистрация: 31.05.2010
Адрес: г. Киров
Сообщений: 9,898
Репутация: 2311

skype: forwardbiznes
По умолчанию

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

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

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



Код:

//---------------------------------------------------------------------------

#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 в 07:23.
salwator вне форума   Ответить с цитированием
Старый 25.05.2012, 11:30   #4
Марат05
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 72
Репутация: -36
По умолчанию

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

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

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

Код:

//---------------------------------------------------------------------------

#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, 19:22   #7
salwator
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 31
Репутация: 10
По умолчанию

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


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




05:34.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

Forex с Admiral Markets — это надежно


Работа на Forex с 2000 года. Очное и дистанционное обучение. Выгодные условия.
магазин горящих туров


более 1000 горящих предложений ежедневно
Бэбиблог - соц сеть для будущих мам


RusProfile.ru


Справочник российских юридических лиц и организаций.