首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

[]自定义路径转换为绝对路径

2012-03-14 
[求助]自定义路径转换为绝对路径有个txt文件,里面写着大量文件夹的路径。不过这个路径的格式不是我们经常所

[求助]自定义路径转换为绝对路径
有个txt文件,里面写着大量文件夹的路径。不过这个路径的格式不是我们经常所看到的绝对路径格式(就像X:\AA\BB\CC)。每一行有一个文字,后面有个数字。这里的文字是文件夹名字,数字是以上文件夹所包含的子文件夹的个数。比如:
AB 0
CD 2
EF 0
GH 1
IJ 0
KL 1
MN 0
OP 0
......
......
以上的格式转换成我们经常使用的绝对路径格式:
X\AB
X\CD
X\CD\EF
X\CD\GH
X\CD\GH\IJ
X\KL
X\KL\MN
X\OP
......
......
(X为某根目录)
以上的自定义格式中,第一行第一个文字是AB,数字为0。那么文件夹是AB,里面没有子文件夹。第二行是CD,数字2。那么CD是跟AB同级别的文件夹而且它包含2个子文件。因为CD的数字不是0,这一行下面开始就是CD所包含的子文件夹的信息了(EF和GH)。
这个自定义文件夹路径的格式就是这样。我现在要把它转换成我们经常所使用的绝对格式。如果少量的话,手动就可以了。但是量大,所以需要编个东西来。

跪求VB高手们帮个忙,万分感谢!

[解决办法]

VB code
Option ExplicitDim FN1 As IntegerDim FN2 As IntegerPrivate Function fnSplit(ByVal InputString As String, ByRef OutputString As String, ByRef OutputNumber As Long)Dim Str() As StringStr() = Split(InputString, " ", , vbTextCompare)OutputString = Str(0)OutputNumber = Val(Str(1))End FunctionPrivate Function fnWriteLine(ByVal FormerDir As String)Dim S As StringDim sDir As StringDim lNum As LongLine Input #FN1, SfnSplit S, sDir, lNumS = FormerDir & "\" & sDir & vbCrLfPut #FN2, , SLoo:If lNum <> 0 Then    fnWriteLine FormerDir & "\" & sDir    lNum = lNum - 1    GoTo LooEnd IfEnd FunctionPrivate Sub Form_Load()FN1 = FreeFileOpen "输入.txt" For Binary As #FN1FN2 = FreeFileIf Dir("输出.txt") <> "" Then VBA.Kill "输出.txt"Open "输出.txt" For Binary As #FN2Seek #FN1, 1Seek #FN2, 1While (Not EOF(FN1))    fnWriteLine "X:"WendClose #FN1Close #FN2End Sub 

热点排行