ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[C#] Построение TreeView из текстового файл
  #1  
Старый 16.12.2009, 13:06
Аватар для hacknick
hacknick
Новичок
Регистрация: 15.10.2009
Сообщений: 8
Провел на форуме:
94341

Репутация: 2
По умолчанию [C#] Построение TreeView из текстового файл

Народ! Очень нужна ваша помощь!

Имеется текстовый файл содержащий пути и размеры ко всем папкам на диске, со следующим синтаксисом:

Код:
c:\Windows\inf\rdyboost;19353
c:\Windows\inf\rdyboost\0000;4284
c:\Windows\inf\rdyboost\0407;5086
c:\Windows\inf\rdyboost\0409;4344
c:\Windows\inf\rdyboost\0419;4734
c:\Windows\inf\RemoteAccess;30958
c:\Windows\inf\RemoteAccess\0000;6918
c:\Windows\inf\RemoteAccess\0407;7748
c:\Windows\inf\RemoteAccess\0409;6918
c:\Windows\inf\RemoteAccess\0419;7554
c:\Windows\inf\ru-RU;750
c:\Windows\inf\ServiceModelEndpoint 3.0.0.0;316650
c:\Windows\inf\ServiceModelEndpoint 3.0.0.0\0000;52
c:\Windows\inf\ServiceModelEndpoint 3.0.0.0\0407;52
c:\Windows\inf\ServiceModelEndpoint 3.0.0.0\0409;52
c:\Windows\inf\ServiceModelEndpoint 3.0.0.0\0419;52
c:\Windows\inf\ServiceModelOperation 3.0.0.0;246004
c:\Windows\inf\ServiceModelOperation 3.0.0.0\0000;53
c:\Windows\inf\ServiceModelOperation 3.0.0.0\0407;53
c:\Windows\inf\ServiceModelOperation 3.0.0.0\0409;53
c:\Windows\inf\ServiceModelOperation 3.0.0.0\0419;53
c:\Windows\inf\ServiceModelService 3.0.0.0;561536
c:\Windows\inf\ServiceModelService 3.0.0.0\0000;51
c:\Windows\inf\ServiceModelService 3.0.0.0\0407;51
c:\Windows\inf\ServiceModelService 3.0.0.0\0409;51
c:\Windows\inf\ServiceModelService 3.0.0.0\0419;51
Нужно по этим данным построить дерево каталогов (элементом TreeView)

Кто нить помогите плиз, два дня мучаюсь(((

Последний раз редактировалось hacknick; 16.12.2009 в 13:28..
 
Ответить с цитированием

  #2  
Старый 16.12.2009, 13:28
Аватар для Galile0
Galile0
Новичок
Регистрация: 18.05.2009
Сообщений: 5
Провел на форуме:
187106

Репутация: 24
По умолчанию

В чем именно состоит проблема?
 
Ответить с цитированием

  #3  
Старый 16.12.2009, 13:36
Аватар для POS_troi
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

В цикле читай строки из файла и в TreeView создавай элемент

Строка - Элемент, Строка - элемент ............

Но чует мое сердце что тут проблема глубже закопана, так что четкое ТЗ в студию.
 
Ответить с цитированием

  #4  
Старый 16.12.2009, 13:49
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

читаешь строку, сплитишь ее по '\\', делаешь метод, который обходит TreeView в поисках элемента с именем таким то(которое просплитилось), и так идешь, пока в исходной строке не остается конечный узел. ТОогда его и добавляешь. А вообще тут пахнет xml. Разбор строки в xml и отображение xml в treeview.
 
Ответить с цитированием

  #5  
Старый 16.12.2009, 16:18
Аватар для hacknick
hacknick
Новичок
Регистрация: 15.10.2009
Сообщений: 8
Провел на форуме:
94341

Репутация: 2
По умолчанию

Решил проблему))
Задача была имитация жесткого диска )))
Тему можно закрывать

Если кому надо:
Сделал на вб, если кому надо на с шарп - переписать дело 5 минут
Код:
Imports System.IO

Public Class Form1
    Dim tfName, TreecDir, TreecFn, TreecFnType, TreecSp, TreecDsinb, lgName, stupName As String
    Dim Treeci As Integer
    Dim Treecds As IO.DirectoryInfo


    Private Sub LoadTreeViewFromFile(ByVal file_name As String, _
    ByVal trv As TreeView)
        ' Get the file's contents.
        Dim stream_reader As New StreamReader(file_name)
        Dim file_contents As String = stream_reader.ReadToEnd()
        stream_reader.Close()

        ' Remove line feeds.
        file_contents = file_contents.Replace(vbLf, "")

        ' Break the file into lines.
        Const charCR As Char = CChar(vbCr)
        Const charTab As Char = CChar(vbTab)
        Dim lines() As String = file_contents.Split(charCR)

        ' Process the lines.
        Dim text_line As String
        Dim level As Integer
        Dim tree_nodes() As TreeNode
        Dim num_nodes As Integer = 0
        ReDim tree_nodes(num_nodes)

        trv.Nodes.Clear()
        For i As Integer = 0 To lines.GetUpperBound(0)
            text_line = lines(i)
            If text_line.Trim().Length > 0 Then
                ' See how many tabs are at the start of the
                ' line.
                level = text_line.Length - _
                    text_line.TrimStart(charTab).Length

                ' Make room for the new node.
                If level > num_nodes Then
                    num_nodes = level
                    ReDim Preserve tree_nodes(num_nodes)
                End If

                ' Add the new node.
                If level = 0 Then
                    tree_nodes(level) = trv.Nodes.Add(text_line.Trim())
                Else
                    tree_nodes(level) = tree_nodes(level - 1).Nodes.Add(text_line.Trim())
                End If
                tree_nodes(level).EnsureVisible()
            End If
        Next i

        If trv.Nodes.Count > 0 Then trv.Nodes(0).EnsureVisible()
    End Sub

    Private Sub gettin(ByVal startpath As String)
        Try
            For Each d As IO.DirectoryInfo In New IO.DirectoryInfo(startpath).GetDirectories
                Treecds = New IO.DirectoryInfo(d.FullName)
                TreecSp = Space(Treeci)
                TreecSp = TreecSp.Replace(" ", vbTab)
                TreecDsinb = TreecSp & d.Name
                TreecFn = TreecDsinb
                Using sw As New IO.StreamWriter(tfName, True)
                    sw.WriteLine(TreecFn)
                    sw.Close()
                End Using
                Try : If CBool(d.GetDirectories.Length) Then Treeci += 1 : gettin(d.FullName) : Treeci -= 1
                Catch ex As Exception
                End Try
            Next
        Catch ex As Exception
        End Try
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        tfName = "c:\tr"
        'gettin("c:\")
        LoadTreeViewFromFile(tfName, TreeView1)
        -
    End Sub
End Class

Последний раз редактировалось hacknick; 16.12.2009 в 16:23..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МикроДжоинер для начинающих ReanimatoR Статьи 23 02.01.2010 15:07
Sale of ICQ Hertz ICQ - Покупка, продажа 1 28.09.2009 04:27
Как уничтожить вирус Penetrator? Aikaram Статьи 0 14.06.2009 11:18
Фейки dgonik777 E-Mail 34 14.06.2009 04:01
Линукс для чайников Dracula4ever Soft - *nix 11 24.01.2007 10:49



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ