我是一个使用VB6尝试创建基本文本文件程序的新手。基本上,在我的工作中,我创建了很多带有标题的文本文件,然后创建了可变数据,所以每次我创建一个VB6程序自动添加标题时,为了节省手动键入每个标题的文档的时间,我会输入数据,它会将其全部输出为文本文件。我完成了大部分,但有一部分我做不到。
文本文件的一部分是一个编号列表,后面有一个点
标题
01.奶酪
02.巧克力
03.呼吸
等等
每个文件的列表不同,长度也不同,所以可以是4项,也可以是20项。目前,我只有一个简单的TextBox,每次我都会按照上面的方式输入数据和数字。我想做的是在列表前面自动创建数字、点和空格。所以我可以像一样输入列表
奶酪
巧克力
呼吸
当我生成文本文件时,列表会自动编号。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
您可以:
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
你可能会想做这样的事情(在我的脑海中,请原谅语法错误)。。。
'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
你可以想象一下,检查上限来获得长度,填充数字之类的东西,但这应该让你开始。
也许我误解了你的问题,但你不能把Textbox的内容拆分成一个数组,然后用数组索引进行编号吗?基本示例。