因此,我基本上使用了一个非常简单的宏程序来记录鼠标单击。 每次用户单击时,都会在4个列表框中的每一个(Click,MouseX,Mouse Y,Time)中添加一个新行。

我希望能够保存自己创建的宏,因为我不喜欢一遍又一遍地重新创建它们。

我做了一个保存功能,将所有4个列表框中的数据保存到一个文本文件中,如下所示:

1
1
1
1
END!~
1020
1032
1134
1129
END!~
611
670
668
602
END!~
32
62
93
131
END!~

我可以导入整个文本文件,并用“〜”将其拆分,从而得到array(3),如下所示:

    Dim bigstringy = System.IO.File.ReadAllText("C:\Users\llooker\Desktop\Macro Scripts\Macro1.txt")

    Dim strarr() As String
    strarr = bigstringy.Split("~")

我尝试使用

Listbox1.Items.addRange(strarr(0))
Listbox2.Items.addRange(strarr(1))

但这给了我一个错误。

如何将字符串分成4个单独的数组,然后将其用作每个单独列表框的范围?

我正在努力实现这一目标:

LISTBOX1:
    1
    1
    1
    1
    END!

LISTBOX2:
    1020
    1032
    1134
    1129
    END!

LISTBOX3:
    611
    670
    668
    602
    END!

LISTBOX4:
    32
    62
    93
    131
    END!

#1楼 票数:2 已采纳

尝试

Listbox1.Items.addRange(Split(strarr(0), vbCrLf))
Listbox2.Items.addRange(Split(strarr(1), vbCrLf))

#2楼 票数:1

有时,一个简单的旧的for-next循环更易于理解和使用

Dim bigstringy = System.IO.File.ReadAllText("C:\Users\llooker\Desktop\Macro Scripts\Macro1.txt")

Dim strarr() As String
strarr = bigstringy.Split(new string() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
Dim blocks = strarr.Length \ 4
for x as Integer = 0 to blocks
   Listbox1.Items.Add(strarr(x).TrimEnd("~"c))
   Listbox2.Items.Add(strarr(x + (blocks * 1)).TrimEnd("~"c))
   Listbox3.Items.Add(strarr(x + (blocks * 2)).TrimEnd("~"c))
   Listbox4.Items.Add(strarr(x + (blocks * 3)).TrimEnd("~"c))
Next

您有4个列表,并且为每个列表编写了一个项目块,因此在换行符处分割文本可以计算遍历数组所需的迭代次数。 在每次迭代时,您都会读取列表的数据块,这些数据块现在被块的大小均匀地分开,并将正确的数据集添加到列表中。

使用这种方法,当您将列表框项目写入文件时,可以在END!之后删除TILDE (~)字符END! 书签。
如果这样做,那么您也可以删除该TrimEnd ,我需要添加4次才能处理这个不必要的(现在)分隔符。

请记住,如果您不是在顺序写入每个列表框数据的情况下,而是在四个列表框中用相同的索引写一行内容,并用逗号分隔每个值,则可以简化很多操作。 例如:

1,1020,611,32
1,1032,670,62
1,1134,668,93
1,1129,602,131

#3楼 票数:0

在这里,你很好:

Private Sub AddValuesToListBoxes()
    Dim count = 0
    For Each list In Split(IO.File.ReadAllText("c:\values.txt"), "~" & vbCrLf)
        CType(Controls("ListBox" & Threading.Interlocked.Increment(count)), ListBox).Items.AddRange(Split(list, vbCrLf))
    Next
End Sub

#4楼 票数:0

感谢PT_01,这是我的解决方案!

Private Sub btnLoad_Click(sender As Object, e As EventArgs) Handles btnLoad.Click

    Dim bigstringy = System.IO.File.ReadAllText("C:\Users\llooker\Desktop\Macro Scripts\Macro1.txt")

    Dim strarr() As String
    strarr = bigstringy.Split("~"c)

    ListBox1.Items.Clear()
    ListBox1.Items.AddRange(Split(strarr(0), vbCrLf))

    ListBox2.Items.Clear()
    ListBox2.Items.AddRange(Split(strarr(1), vbCrLf))

    ListBox3.Items.Clear()
    ListBox3.Items.AddRange(Split(strarr(2), vbCrLf))

    ListBox4.Items.Clear()
    ListBox4.Items.AddRange(Split(strarr(3), vbCrLf))

    ListBox2.Items.RemoveAt(0)
    ListBox3.Items.RemoveAt(0)
    ListBox4.Items.RemoveAt(0)

End Sub

  ask by llooker translate from so

未解决问题?本站智能推荐:

1回复

如何遍历字符串并创建数组?-VB.NET

可以这么说,我在创建模板的地方有一个字符串。 { } 我有一个列表框,其中包含加载到变量示例中的选项列表:fence,bucket等。 所以句子看起来像 那只狗跳过篱笆找到狐狸 那只狗跳过水桶找到狐狸 现在,我已将其编码为显示在富文本框中,但是所有内容都在同一个富
1回复

在VB.net中处理未知大小的数组

我正在做一个分配,其中从文件读取记录,将记录存储在结构数组中,然后输出到列表框。 根据分配指令,结构数组的大小指定为250个元素。 为了跟踪已处理的记录数,我创建了名为totalElements的变量。 它计算已处理的记录数,因此,对于写入列表框的For循环,我拥有较高的记录数。 这是
1回复

将变量写入VB.Net中的预先存在的数组

我目前正在使用Framework 4.0设计一个电影客户预订系统的模型。 目前所有数据都将存储在一个数组中,因为它是一个模型,它将保留其(客户名称,票价等...),因为此时无需永久存储数据。 我有一个GUI表单和两个主要类,MainForm.vb用于处理应用程序的I / O功能,而Seat
1回复

帮助使用数组将项目插入文本框vb.net

我仍然是一名没有使用vb.net的经验的学生,并且在将数组中的字符串拆分为2个值时遇到了一些麻烦。 例如,在我的文本框中,我有几行长度和宽度的度量值:20x14、10x8、16x13。 每次测量都在自己的线上。 我正在尝试将大于12的所有Width值分成2个单独的度量,因此在最后一个示例中
1回复

将数组ID添加到标签文本和列表框VB.NET

自从接触VB以来已经快一年了,但是我在本学期的第一次作业中遇到了一个问题,应该重新学习。 我应该做的是制作一个应用程序,该应用程序按文本框输入学生的姓名,地址,GPA,年龄,按广播电台输入的年份(新人,大二,其他),以及按复选框输入班级。 填写完毕后,我需要获取该信息并将其预览在label
3回复

VB.NET如何通过OpenFileDialog打开文本文件到Array和ListBox?

我的代码是: 当前加载如下: 但我需要将其分为: 代理[0]和代理[1] 0是IP,1是端口。 稍后,我需要在Web浏览器中使用它们。 每当我尝试时,我似乎都找不到办法 它给我一个错误:
2回复

如何用逗号从文本文件中拆分数组,只在Listbox中显示一个数组索引?

首先,我要感谢愿意提前提供帮助的任何人。 我的问题是,当我尝试用数组中的项目填充列表框时,我只会将“常规”添加为列表框项,而不是数组中的实际字符串。 我是编程的新手,所以我很抱歉这是否是我的代码中的明显错误,尽管我认为可能是这样。 这是我的代码: 文本文件在第一行包含用于测试“ al
1回复

在列表框vb.net中的选定索引中,无法将'String'类型的system.string[]/value转换为'String()'

这是我在Visual Basic窗口窗体应用程序中创建的程序,该程序使用两个列表框,一个列表框用于“月”,另一个列表框用于“生日石”。 当用户单击出生石时,lblDescription控件中将显示相应的月份,或者当用户单击_strMonths列表框中的月份时,lblDescription中将显