Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 用VB6生成编号列表_List_File_Text_Vb6_Numbered - Fatal编程技术网

List 用VB6生成编号列表

List 用VB6生成编号列表,list,file,text,vb6,numbered,List,File,Text,Vb6,Numbered,我是一个使用VB6尝试创建基本文本文件程序的新手。基本上,在我的工作中,我创建了许多带有标题的文本文件,然后是可变数据,这样可以节省我的时间。每次我创建一个VB6程序,自动添加标题时,我都会输入数据,并将其作为文本文件输出。我完成了大部分,但有一部分我做不到 文本文件的一部分是编号列表,后面有一个点。例如: 标题 1奶酪 2巧克力 3面包 等等 每个文件中的列表不同,长度也不同,因此可以是4项,也可以是20项。现在我只有一个普通的文本框,我每次都会按上面的方式输入数据,并输入数字。我想做的是在列

我是一个使用VB6尝试创建基本文本文件程序的新手。基本上,在我的工作中,我创建了许多带有标题的文本文件,然后是可变数据,这样可以节省我的时间。每次我创建一个VB6程序,自动添加标题时,我都会输入数据,并将其作为文本文件输出。我完成了大部分,但有一部分我做不到

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

标题
1奶酪
2巧克力
3面包

等等

每个文件中的列表不同,长度也不同,因此可以是4项,也可以是20项。现在我只有一个普通的文本框,我每次都会按上面的方式输入数据,并输入数字。我想做的是在列表前面自动创建数字、点和空格。所以我可以按原样输入列表

奶酪
巧克力
面包

当我生成文本文件时,列表会自动编号。用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

是的,你试过使用循环吗?正如我所说,我是一个刚在大学里学过基本知识的新手,但我不确定我的意思是什么,不。为了简化它,想象一下我将这三个单词写入文本框,然后使用.writeline将它们写入文本文件。它们将按原样打印,我试图做的是自动给它们编号,无论是在我将它们输入txt字段时,还是在它们输出到文本文件时。@Simon K,同时您得到了一个答案(来自@Alex K.)这在代码中就像我的答案在散文中一样。非常感谢,但正如我所说,我是一个新手,不知道这段代码会去哪里。我已经在上面编辑了表单上提交按钮的当前代码,我正在尝试使用的文本框是TXTRACKS。谢谢。请尝试将
.writeline(txtracks&vbNewLine)
替换为
。writeline(TextToNumberedList(txtracks.text)&vbNewLine)
,非常感谢大家的回答。
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