国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

遞歸過程在VB中的應(yīng)用實例

2019-11-18 17:52:07
字體:
供稿:網(wǎng)友

 簡言之,遞歸過程就是子程序自己調(diào)用自己。在編程有時采用遞歸的思路進行編程往往能夠起到事半功倍的作用。

  Win95的資源管理器具有界面直觀、操作簡便的特點,深受廣大電腦愛好者的歡迎和喜愛。

  下面就采用遞歸過程模擬Windows的資源管理器。

  遞歸過程實現(xiàn)的思路:

  由于磁盤上的目錄是樹形結(jié)構(gòu),而樹形的節(jié)點和節(jié)點級數(shù)是不受限定的,如把目錄名放入一維或多維數(shù)組中則難度較大,不易實現(xiàn)。如采用VB的TreeView控件的Node對象,那就比較方便了。編一子程序,給定目錄,并建立當前節(jié)點,加入Node對象中,根據(jù)Dir1控件判斷給定目錄下是否有下級目錄,如有,添加下級節(jié)點,并加入Node對象中;如無則退出子程序。即子程序的功能是:如給定目錄有子目錄存在,則展開當前目錄求子目錄。如果在給定目錄展開完成后,把下級目錄當成給定目錄,并調(diào)用子程序進行展開,即可把給定目錄下的數(shù)級子目錄全部展開完畢。

  利用VB提供的TreeView控件完全可以把磁盤上的目錄(包括子目錄)放入Node對象中,其界面具有資源管理器的特點。把磁盤上的目錄放入Node對象有多種方法,應(yīng)該說采用遞歸方法是比較簡潔的。

  實現(xiàn)的過程:

  1、添加TreeView控件到窗體中:單擊—“工程”—“部件”,選擇MicrosoftWindows

CommonControl5.0”復(fù)選框,單擊—“確定“按鈕,TreeView控件即可出現(xiàn)在工具箱中。

  2、在窗體中添加Drive、DirListBox、ImageList控件。

  3、控件名及主要屬性如下:

-width="23">控件及窗體名->-width="11">屬性->-width="16">設(shè)置值->-width="50">備注->-width="23">Form->-width="11">Name->-width="16">Form1->-width="50">->-width="23">TreeView->-width="11">Name->-width="16">TreeView->-width="50">->-width="23">Drive->-width="11">Name->-width="16">Drive1->-width="50">獲得當前電腦的盤符->-width="23">DirListBox->-width="11">Name->-width="16">Dir1->-width="50">->-width="23">ImageList->-width="11">Name->-width="16">ImageList->-width="50">給TreeView1的Node對象圖標->
  實現(xiàn)的源程序如下:->

DimnodxAsNode

Drive1.List(DriverCount),1)

GivePath=Drive1.List(DriverCount) "/"

CallSSplitNode(GivePath)

NextDriverCount

EndSub

SubSSplitNode(GivePathAsString)‘子過程

'把給定目錄下的子目錄全部加入Node對象中

DimSDIAsInteger

DimSDCountAsInteger

DimDString(1000)AsString

‘以下為展開給定目錄的下級子目錄

Dir1.Path=GivePath‘給定目錄

SDCount=Dir1.ListCount‘利用Dir1控件判斷是否有下級目錄

IfSDCount=0ThenExitSub

‘如無同退出子程序,即為遞歸出口。否則會形成死循環(huán)。

ForSDI=0ToSDCount-1

DString(SDI)=Dir1.List(SDI)

Setnodx=TreeView1.Nodes.Add(GivePath,tvwChild,_

DString(SDI),FOnlyPath(DString(SDI)),1)

NextSDI

‘調(diào)用遞歸(子程序自己調(diào)用自己)

ForSDI=0ToSDCount-1

CallSSplitNode(DString(SDI))

NextSDI

EndSub

FunctionFOnlyPath(DStringAsString)AsString

'功能是去掉上級目錄,只留下當前目錄名

'DString為給定的全路徑目錄名

IfDString=""ThenExitFunction

DimDLengthAsInteger

DLength=Len(DString)

DimDDAsInteger

ForDD=DLengthTo1Step-1

IfMid(DString,DD,1)="/"ThenExitFor

NextDD

FOnlyPath=Mid(DString,DD 1)

EndFunction

->

  本程序在Win95,VB5.0中文版下通過。

->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 古浪县| 道真| 上犹县| 陆丰市| 木里| 久治县| 江孜县| 青神县| 南投县| 桂平市| 青海省| 东丰县| 青浦区| 保定市| 海原县| 平潭县| 萨嘎县| 卢氏县| 阿巴嘎旗| 和顺县| 玉树县| 宜兴市| 孝昌县| 彩票| 大港区| 岗巴县| 凌海市| 姜堰市| 昔阳县| 泾阳县| 景宁| 板桥市| 东辽县| 华池县| 蕲春县| 元阳县| 曲周县| 阜南县| 思南县| 八宿县| 周至县|