我从文本文件中分割一个字符串并将其放入一个数组中,但是每当我输出该数组时,它们都会用 0 填充

2023-12-20

我的代码基本上将 3 个随机变量输入到一个文本文件中,并用“:”分隔每个变量。我的代码的第二部分基本上再次读取文本文件,并使用我之前输入的 MID 函数对字符串进行切片以获取第二个变量,并将其添加到数组中。但是当我输出数组时,它全是 0。我试图找出问题所在,但我不知道。

这是我的代码:

Dim r1, r2, r3, counter, counter1, counter2, sep As Integer
Dim line As String
Dim middleline(20)
line = ""
counter1 = 0
sep = 0
FileSystem.FileOpen(1, "C:\Users\user\OneDrive\Desktop\binarysearch.txt", OpenMode.Output, OpenAccess.Write)
For counter = 1 To 20
    If Rnd() = 0.21 Then
        r1 = -1
    Else
        Do
            r1 = Rnd() * 100
        Loop Until r1 <= 20
    End If
    Do
        r2 = Rnd() * 100
    Loop Until r2 >= 10 AndAlso r2 <= 50
    If Rnd() = 0.21 Then
        r3 = -1
    Else
        Do
            r3 = Rnd() * 100
        Loop Until r3 <= 20
    End If
    line = r1 & ":" & r2 & ":" & r3
    FileSystem.WriteLine(1, line)
Next
Console.WriteLine("Generated successfully.")

For counter = 1 To 20
    middleline(counter) = 0
Next

For counter = 1 To 20
    FileSystem.PrintLine(1, line)
    For counter1 = 1 To Len(line)
        If Mid(line, 1, counter1) = ":" Then
            sep += 1
        End If
        If sep = 1 Then
            middleline(counter2) = middleline(counter2) & Mid(line, 1, counter1)
            counter2 += counter2
        End If
    Next
Next

For counter = 1 To 20
    Console.WriteLine(middleline(counter))
Next
Console.WriteLine(middleline)

我不是 100% 确定你的代码哪里出了问题,但我对其进行了一些重写,这似乎工作正常。
我改变了随机数生成,因为我觉得你的循环有点繁重。
还将文件处理切换为更新的方法。

    Private Shared RndGenMachine As Random = New Random

    Public Sub DoWork(FileName As String)

        Dim r1, r2, r3 As Integer
        Dim middleline As List(Of String) = New List(Of String)

        'build the initial file
        Using sw As New StreamWriter(FileName, True)

            For counter As Integer = 1 To 20

                r1 = RndGenMachine.Next(0, 20)
                r3 = RndGenMachine.Next(0, 20)
                r2 = RndGenMachine.Next(10, 50)

                Dim line As String = $"{r1}:{r2}:{r3}"
                sw.WriteLine(line)

            Next

        End Using

        Console.WriteLine("Generated successfully.")

        'read it back for parsing
        Dim lines As IEnumerable(Of String) = File.ReadLines(FileName)

        For lineCounter = 0 To lines.Count - 1

            Dim splits() As String = lines(lineCounter).Split(Convert.ToChar(":"))
            middleline.Add(splits(1))

        Next

        For Each middlelinevalue As String In middleline
            Console.WriteLine(middlelinevalue)
        Next

    End Sub

如果您更喜欢使用旧式文件处理程序,您可以尝试如下操作:

    Public Sub DoWorkOldStyle(FileName As String, iterations As Integer)

        Console.WriteLine("Starting generation...")

        Dim r1, r2, r3 As Integer

        'build the initial file
        FileSystem.FileOpen(1, FileName, OpenMode.Output, OpenAccess.Write)

        For counter As Integer = 1 To iterations

            r1 = RndGenMachine.Next(0, 20)
            r3 = RndGenMachine.Next(0, 20)
            r2 = RndGenMachine.Next(10, 50)

            Dim line As String = $"{r1}:{r2}:{r3}"
            FileSystem.WriteLine(1, line)

        Next

        FileSystem.FileClose(1)

        Console.WriteLine("Generated successfully. Starting evaluation...")

        'read it back for parsing
        FileSystem.FileOpen(1, FileName, OpenMode.Input, OpenAccess.Read)

        Dim middleline As List(Of String) = New List(Of String)

        While Not EOF(1)

            Dim line As String = LineInput(1)
            Dim splits() As String = line.Split(Convert.ToChar(":"))
            middleline.Add(splits(1))

        End While

        FileClose(1)

        For Each middlelinevalue As String In middleline
            Console.WriteLine(middlelinevalue)
        Next

        Console.WriteLine("Evalutaion complete.")

    End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我从文本文件中分割一个字符串并将其放入一个数组中,但是每当我输出该数组时,它们都会用 0 填充 的相关文章

  • 在 C# 中对由整数组成的多维 [] 数组进行排序

    我有以下数组 private int testSamples new testSamples 101 101 它应该代表一个名册 第0到100列 第0到100行 在这个名册中 掉落了各种化学液体 我为之做这件事的人希望以这样的方式工作 他可
  • Visual Studio 2022 - 编译旧应用程序时出错

    我们正在尝试在 Visual Studio 2022 中使用 VB6 32 位应用程序 编译 2002 年以来非常旧的应用程序 我们需要调试此应用程序并能够在 Windows 10 计算机上运行此应用程序 编译时 我们发现以下错误 这似乎是
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • 调整巨大数组的大小

    我正在我的应用程序中处理巨大的数组 需要调整它们的大小 假设您有一个 2Gb 的阵列 并且想要将其大小调整为 3Gb 有没有办法在暂时不需要 5Gb 的情况下调整它的大小 例如 给定一个 1Gb 堆 使用 Xmx1G flag public
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • 比较两个文本文件的最快方法是什么,不将移动的行视为不同

    我有两个文件非常大 每个文件有 50000 行 我需要比较这两个文件并识别更改 然而 问题是如果一条线出现在不同的位置 它不应该显示为不同的 例如 考虑这个文件A txt xxxxx yyyyy zzzzz 文件B txt zzzzz xx
  • 某些笔记本电脑中的 VB.net Forms UI 显示问题

    我是 VB 应用程序的新手 无法弄清楚我的应用程序出了什么问题 有一个带有几个标签和文本字段的表单 当我在我和其他人的机器上运行该应用程序时 它显示良好 并具有正确的对齐和字体 然而 对于某些人来说 应用程序表单 UI 是破碎的 未对齐的文
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO
  • Javascript 在数组索引上传播以将新项目“推送”到嵌套数组

    考虑以下数据 let data foo true bar 1 2 3 foo true bar 8 9 我试图push嵌套的东西bar索引上的数组1使用扩展语法 https developer mozilla org en US docs
  • 在javascript中访问隐藏字段值

    我的表单中有一个隐藏字段 我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值 我收到错误 无法获取属性 值 的值 对象为 null 或未定义 如果我查看源代码 则会设置隐藏字段值 并且隐藏字段的 ID 与我正在调用的 I
  • 如何使用 CNContacts 快速获取手机号码?

    我有一些代码可以检索用户联系人中的所有电话号码 但只想过滤掉手机号码 目前 我只是通过将第一个数字为 或第二个数字为 7 的数字添加到数组中来实现此目的 如下所示 func findContacts gt CNContact let key
  • 如何在单击事件时向数组添加值

    我想要实现的是读取单击事件的值并将其保存到数组中 我的代码 a href class hotel Add to favourites a var hotelName hotel on click function e e preventDe
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 如何在vb.net中对datagridview的3列进行排序

    下面我想对 ProductCode ColorCode 和 Size 列进行排序 请指导 对 大小 列中的信息进行排序 Size Number sequence XS 1 S 2 M 3 L 4 XL 5 XXL 6 2L 7 3L 8 4
  • 删除近排序数组中未排序/离群元素

    给定一个像这样的数组 15 14 12 3 10 4 2 1 我如何确定哪些元素乱序并删除它们 在本例中为数字 3 我不想对列表进行排序 而是检测异常值并将其删除 另一个例子 13 12 4 9 8 6 7 3 2 我希望能够删除 4 和
  • 循环访问 VB.NET 中的控件

    我正在创建一个国际象棋程序 它由六十四个黑白背景颜色交替的图框组成 我已经给它们命名了pba1 pba2 pbb1 pbb2 pbc1等等 现在 我只想循环遍历黑色的 例如 我只想循环遍历pba1 pbb2 pbc3等 如何在 VB NET
  • VB.NET 中的模块变量何时实例化?

    我想知道在程序的生命周期中 模块中的变量将被初始化 如下例所示 Module Helper Friend m Settings As New UserSettings Sub Foo End Sub Sub Bar End Sub End

随机推荐