从文本文件读取到数组

2024-03-22

我正在尝试逐行读取文本文件并将其添加到数组中,当前代码和输出如下。我如何正确读取它,即将实际文本读入数组,而不是当前输出。 (VB.NET 的控制台应用程序版本)

Code:

Sub Main()
    Dim file As String = "C:\path\to\file\textfile.txt"
    Dim quoteArray As New ArrayList
    FileOpen(1, file, OpenMode.Input)
    Do While Not EOF(1)
        quoteArray.Add(LineInput(1))
    Loop
    FileClose(1)
    Console.WriteLine(quoteArray)
    Console.ReadLine()
End Sub

Output:

System.Collections.ArrayList

您的代码可以工作,但无法一次打印整个数组。您必须以某种方式迭代数组并单独打印每个项目或将它们组合成一个字符串。

单独打印每个项目:

For Each Item As String In quoteArray
    Console.WriteLine(Item)
Next

使用将它们组合成一个字符串String.Join():

Console.WriteLine(String.Join(Environment.NewLine, quoteArray.ToArray(GetType(String))))

然而我不明白的是为什么你在 VB.NET 中编写,但仍然使用 VB6 时代过时的函数和类:

  • ArrayList

  • FileOpen()

  • LineInput()

  • FileClose()

much如今更好的选择:

  • ArrayList可以替换为List(Of T) https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx

  • FileOpen() and FileClose() with a Using block https://learn.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/using-statement结合一个StreamReader https://msdn.microsoft.com/en-us/library/system.io.streamreader(v=vs.110).aspx

  • LineInput() with StreamReader.ReadLine() https://msdn.microsoft.com/en-us/library/system.io.streamreader.readline(v=vs.110).aspx

或者您可以将以上所有内容替换为正则数组 https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/arrays/和一个单一的电话File.ReadAllLines() https://msdn.microsoft.com/en-us/library/system.io.file.readalllines(v=vs.110).aspx.

  1. StreamReader解决方案:

    Dim quoteList As New List(Of String)
    
    Using Reader As New StreamReader("C:\path\to\file\textfile.txt")
        While Reader.EndOfStream = False
            quoteList.Add(Reader.ReadLine())
        End While
    End Using
    
  2. File.ReadAllLines()解决方案:

    Dim quoteArray As String() = File.ReadAllLines("C:\path\to\file\textfile.txt")
    

使用循环打印列表/数组:

For Each Item As String In quoteArray
    Console.WriteLine(Item)
Next

使用打印列表/数组String.Join():

Console.WriteLine(String.Join(Environment.NewLine, quoteArray))

(如果您正在使用quoteList解决方案只需更换quoteArray with quoteList在这两个例子中)

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

从文本文件读取到数组 的相关文章

  • 用于确定应用程序是否在 Citrix 或终端服务上运行的 API [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以调用的 API 函数来确定软件是否在 Citrix 终端服务或独立 PC 上运行 最
  • Vb.net 捕获 Ctrl+C

    I want to capture when someone uses CtrlC even when off focus im using Visual Basic 2010 好的 我为您提供了一个经过验证有效的解决方案 不过 您将需要一
  • Visual Studio 多个启动项目之间存在延迟?

    如何在解决方案中的启动项目之间添加一些延迟 我希望客户端项目在启动 WindowsService 后 2 3 秒后启动 为什么我需要这个 WindowsService运行socket服务器 Client运行socket来连接服务器 Wind
  • 无法使用 dataformatstring 格式化日期时间

    由于某种原因 我无法在网格视图中格式化日期文本
  • 将 .NET P/Invoke 代码组织为 Win32 API 的最佳实践

    我正在 NET 中重构一个大型且复杂的代码库 该代码库大量使用 P Invoke to Win32 API 该项目的结构不是最好的 我发现 DllImport 语句遍布各处 经常为同一函数重复 并且还以多种方式声明 导入指令和方法有时声明为
  • 在javascript中访问隐藏字段值

    我的表单中有一个隐藏字段 我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值 我收到错误 无法获取属性 值 的值 对象为 null 或未定义 如果我查看源代码 则会设置隐藏字段值 并且隐藏字段的 ID 与我正在调用的 I
  • 比较已编译的 .NET 程序集?

    有没有什么好的程序可以与编译 NET 程序集进行比较 例如 我有 HelloWorld dll 1 0 0 0 和 HelloWorld dll 2 0 0 0 我想比较差异 我该怎么做 我知道我可以使用 NET Reflector 并使用
  • C# 的最佳替代“错误继续下一步”是什么?

    如果我为 C 代码放置空的 catch 块 它是否与 VB NET 的 On Error Resume Next 语句等效 try C code catch exception 我问这个问题的原因是因为我必须将 VB NET 代码转换为 C
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 循环访问 VB.NET 中的控件

    我正在创建一个国际象棋程序 它由六十四个黑白背景颜色交替的图框组成 我已经给它们命名了pba1 pba2 pbb1 pbb2 pbc1等等 现在 我只想循环遍历黑色的 例如 我只想循环遍历pba1 pbb2 pbc3等 如何在 VB NET
  • WithEvents(句柄)与 AddHandler 之间的区别

    我搜索了关键字使用的差异Handles http msdn microsoft com en us library 6k46st1y aspx代替添加处理程序 http msdn microsoft com en us library 7t
  • 如何将 Datagridview 中的格式列更改为该值的日期类型

    例如 我有这样的值 41607 2069444444 41607 2068402778 41607 2072222222 这是来自 CDR 的 dateTimeOrigination 计算 在 Excel 中 我将格式单元格更改为日期类型
  • 确定最接近的已知颜色

    我允许我的应用程序的用户选择自定义颜色 并希望有一种方法来显示每种颜色的友好名称 而不是显示十六进制代码的文本表示形式 我如何找到最近的System Drawing Color对于给定的十六进制代码 希望这对某人有帮助 Public Fun
  • VB6 HTTP 请求到 VB.Net 2.0 的转换

    我正在尝试将旧版 VB6 组件 不是我编写的 更新到 NET 平台 有一个函数可以将 XML 字符串发送到 URL Function PostToUrl ByRef psUrl ByRef psData Byref psResponseTe
  • 如何在 VB.NET 中对数组进行 JSON 编码?

    我需要为我正在使用的例程传回 JSON 结果 在VB NET 数组如何进行JSON编码 Dim serializer as New JavaScriptSerializer Dim arrayJson as String serialize
  • Enum.GetName 与 Enum.ToString

    对于这个枚举 Enum MyEnum Value End Enum 有两种方法获取名称表示Value of MyEnum Value Enum GetName GetType MyEnum MyEnum Value aka Enum Get
  • 通过 ClickOnce 部署自动安装更新

    我想部署我的项目单击一次 http en wikipedia org wiki ClickOnce部署 但是当我这样做时 它在最终用户计算机的对话框中询问 XXXX 已推出新版本 您想立即下载吗 但我的最终用户don t有鼠标或键盘 所以我
  • VB.NET 中的 Excel 自动调整列

    我这里有我的 VB6 代码并且运行良好 For CLms 1 To 10 ws Columns CLms AutoFit lt Autofilt data on XL sheet Next CLms 我已经搜索了如何在 VB NET 中使
  • 创建一个从系统托盘运行的程序

    我想创建一个从 Windows 右下角系统托盘运行的程序 但我不知道从哪里开始 有人可以告诉 告诉我在哪里查找和示例或使用什么命令 研究吗 Add a NotifyIcon到主窗口窗体 使用Resize事件在Form控制何时显示Notify
  • 尝试获取类型 LogWriter、键“”的实例时发生激活错误?

    我有 ASP NET 网站 我添加了参考Microsoft Practices EnterpriseLibrary Logging dll到该网站 在 web config 文件中 定义如下

随机推荐

  • vhdl中process语句的顺序执行

    对于vhdl中的process语句 据说process语句内部的执行顺序是连续的 我的问题是 请先看下面的代码 a b和c信号在进程语句中的if语句中是同时还是顺序分配给它们的新值 process clk is begin if risin
  • MySql:插入一行并获取内容

    是否可以插入一行并获取在同一查询中插入的值 就像是 INSERT INTO items item number state SELECT 3 number state FROM item bug WHERE id 3 然后 获取ID并执行
  • return 语句中两种不同的括号语法

    我正在关注 ReactJS 入门教程 https scotch io tutorials learning react getting started and concepts https scotch io tutorials learn
  • 如何让 Google 字体在 IE 中工作?

    我一直在开发一个使用谷歌字体 API https code google com apis webfonts 它很棒 据说已经在 IE 中进行了测试 但是在 IE 8 中测试时 字体根本没有样式化 我包括了谷歌的字体指示 http code
  • Cuda和pytorch内存使用情况

    我在用Cuda and Pytorch 1 4 0 当我尝试增加batch size 我遇到以下错误 CUDA out of memory Tried to allocate 20 00 MiB GPU 0 4 00 GiB total c
  • TfidfVectorizer.fit_transfrom 和 tfidf.transform 之间有什么区别?

    在 Tfidf fit transform 中 我们仅使用参数 X 而没有使用 y 来拟合数据集 这是正确的吗 我们仅为训练集的参数生成 tfidf 矩阵 我们没有使用 ytrain 来拟合模型 那我们如何对测试数据集进行预测呢 https
  • 如何以编程方式禁用 TextView maxLines?

    我很难重置maxLines的属性TextView以编程方式 刚刚尝试设置为0但它不起作用 1使应用程序崩溃 我可以使用更简单的解决方法并设置maxLines to 5000但我不想那样做 有什么想法如何做到这一点吗 UPDATED 好吧 我
  • Android 首选项屏幕布局

    我的应用程序中有以下首选项屏幕
  • Android P 中调用服务的 AlarmManager:startForegroundService

    我正在使用 AlarmManager 如下所示 它在 Android O 及以下版本中运行良好 AlarmManager mgr AlarmManager context getSystemService Context ALARM SER
  • NumPy ndarray 的三元运算符?

    NumPy 有三元运算符吗 例如 在 R 中 有一个向量化的if else功能 gt ifelse 1 10 lt 3 a b 1 a a b b b b b b b b NumPy 中有类似的东西吗 您正在寻找numpy where ht
  • File.renameTo() 没有任何效果

    我希望能够重命名文件夹列表 以便删除不需要的字符 例如 点和双空格必须变成单个空格 单击 GUI 中的按钮后 您将看到一个带有正确格式名称的消息框 这表明格式正确并且函数被调用 当我查看我创建的测试文件夹时 名称没有更改 即使刷新后也没有更
  • 在 haskell 中将整数列表转换为一个 Int (如 concat)

    和标题说的差不多 我有一个整数列表 如下所示 1 2 3 我想将其更改为整数 123 我的第一个想法是 concat 但这不起作用 因为它的类型错误 我尝试了各种方法 但通常最终只是返回相同的列表 非常感谢任何帮助 另外 我已经找到了一种打
  • Java:如何在枚举中使用构造函数重载?

    我正在使用 Java 中的枚举 正如我所看到的 可以重载枚举构造函数 我的问题是 在这种情况下 是否有可能从构造函数重载中受益 因为据我所知 既不可能自己调用 它 也不可能强制编译器调用您想要调用的特定构造函数 感谢您花时间向我澄清这些内容
  • 在C++中,1和1i64有什么区别?

    我正在将一些 32 位兼容代码转换为 64 位 但我遇到了障碍 我正在编译 VS2008 x64 项目 并且收到以下警告 warning C4334 lt lt result of 32 bit shift implicitly conve
  • CodeIgniter 图像上传 - 无法显示错误消息

    这是我的上传模型 function upload avatar id this gt tank auth gt get user id config upload parameters and upload image config arr
  • PHP4 HTTP Post 不带 cURL

    我有以下代码 可在 PHP5 上运行 无需使用 cURL 即可发送 HTTP POST 我希望它可以在 PHP 4 3 0 及更高版本上运行 opts array http gt array method gt POST header gt
  • (Play 2.0) 设置 AnyContent 的最大 POST 大小

    我在 Play 2 0 中使用 Scala 每当将大数据 超过 100KB 发布到特定端点时 我都会收到 413 错误 它使用 anyContent 解析器 对于这个特定的 API 使用任何其他解析器是不合理的 Stack Overflow
  • Jenkins CLI 列表-带有文件夹的作业

    使用 Jenkins 文件夹插件时 有没有一种方法可以获取所有作业的列表 包括文件夹中的作业以及可能的文件夹路径 类似于默认 CLI 中的列表作业的工作方式 我制作了一个小型 PowerShell 脚本来获取默认仪表板中每个作业的最后一次构
  • Maven Shade 插件:如何解决警告消息“定义 1 重叠资源:[警告] - META-INF/MANIFEST.MF”

    For
  • 从文本文件读取到数组

    我正在尝试逐行读取文本文件并将其添加到数组中 当前代码和输出如下 我如何正确读取它 即将实际文本读入数组 而不是当前输出 VB NET 的控制台应用程序版本 Code Sub Main Dim file As String C path t