使用VB6生成编号列表

时间:2011-06-07 14:28:56

标签: list file text vb6 numbered

我是一个使用VB6尝试创建基本文本文件程序的新手。基本上在我的工作中,我创建了大量带有标题和可变数据的文本文件,以便每次创建VB6程序时都会手动输入每个标题的文档,这将自动添加标题,我会输入数据并输出这一切都是一个文本文件。我完成了大部分工作,但有一部分我不能做。

文本文件的一部分是编号列表,后面有一个点。 EG:

航向
01.奶酪
02.巧克力
03.面包

等等。

列表在每个文件中有所不同,长度不同,因此可能是4个项目,可能是20个。目前我只有一个简单的TextBox,我每次都按照上面的数字手动输入数据。我想要做的是在列表前面自动创建数字,点和空格。所以我可以按原样输入列表

奶酪
巧克力
BREAD

当我生成文本文件时,列表会自动编号。用VB6可以吗?我知道这似乎是一个小细节,但我创建了数百个这样的文件,而且我可以为每个文件做出更少的努力。

Private Sub create_Click()
Dim fso
Dim file As String
file = "C:\Textfile.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(file) Then
    fso.DeleteFile file, True
End If
Const ForAppending = 8
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.OpenTextFile("C:\Textfile.txt", ForAppending, True)
With filetxt
.writeline (txtArtist & vbNewLine)
.writeline ("SOURCE" & " (" & Combo1 & " #" & txtsource & ")" & ":")
.writeline (txtequip & vbNewLine)
.writeline (Combo2 & ":")
.writeline (txttransfer & vbNewLine)
.writeline ("GENERATION:")
.writeline (txtgen & vbNewLine)
.writeline ("LENGTH:")
.writeline (txtlength & vbNewLine)
.writeline ("NOTES:")
.writeline (txtnotes & vbNewLine)
.writeline ("TRACKS:")
.writeline (txttracks & vbNewLine)
.writeline ("MD5 FINGERPRINTS:")
.writeline (txtmd5 & vbNewLine)
.writeline ("TRANSFERRED BY:")
.writeline (txttransferby & vbNewLine)
.writeline ("**PLEASE DO NOT ENCODE TO LOSSY FORMATS OR SELL!**")
.Close
End With
Shell "notepad.exe C:\Textfile.txt", vbNormalFocus
End Sub

3 个答案:

答案 0 :(得分:5)

你可以:

Text1.Text = TextToNumberedList(Text1.Text)

Function TextToNumberedList(strData As String) As String
    Dim arr()  As String
    Dim i      As Long
    arr = Split(strData, vbCrLf)
    For i = 0 To UBound(arr)
        arr(i) = Format$(i + 1, "00") & ". " & arr(i)
    Next

    TextToNumberedList = Join(arr, vbCrLf)
End Function

答案 1 :(得分:2)

你可能想要做这样的事情(除了我的头脑,原谅语法错误)......

   'Split The Text
   Dim YourArray As String()
   YourArray = Split(Input, vbNewLine)

   Dim Counter As Long
   Dim OutputString As String
   For Counter = 0 To UBound(YourArray)
      OutputString = Counter & ". " & YourArray(Counter)
   Next

你可以看上去并检查上限以获得长度并填充数字和类似的东西,但这应该让你开始。

答案 2 :(得分:1)

也许我误解了你的问题,但是你不能把文本框的内容拆分成一个数组并使用数组索引循环编号吗? Basic example