从文本文件读取整行时出现问题

2023-12-22

我有一个程序,可以从文本文件(从 Notes 中使用 UTF 保存)读取文本行(大约 3000-4000 行)。每行由大约 300-900 个字符组成。我使用了这个功能:

    Function loadVerbs2(fullPathName As String) As String()
    Dim strings(0 To 5000) As String
    Dim my_file As Integer
    Dim text_line As String
    Dim stringNr As Integer
    my_file = FreeFile()
    Open fullPathName For Input As my_file
    stringNr = 0
    While Not EOF(my_file)
        Line Input #my_file, text_line
'Cut preceding "
        While ((Asc(Left$(text_line, 1)) < Asc("a")) Or (Asc(Left$(text_line, 1)) > Asc("z")))
            text_line = Mid$(text_line, 2)
        Wend
' Cut ending " and ,
        While ((Right$(text_line, 1) = Chr$(34)) Or (Right$(text_line, 1) = ","))
            text_line = Left$(text_line, Len(text_line) - 1)
        Wend
        strings(stringNr) = latinCharacter(text_line)
        stringNr = stringNr + 1
    Wend
    Close #my_file
    loadVerbs2 = strings
End Function

由于某种原因,该函数不会读取整行,而是剪切它们。 所以我把它改成这样:

Function loadVerbs(fullPathName As String) As String()
    Dim strings(0 To 5000) As String
    Dim text_line As String
    Dim stringNr As Integer
    Dim fso As New FileSystemObject
    Dim ts As TextStream
    Set ts = fso.OpenTextFile(fullPathName)
        Do While Not ts.AtEndOfStream
            text_line = ts.ReadLine
'Cut preceding "
            While ((Asc(Left$(text_line, 1)) < Asc("a")) Or (Asc(Left$(text_line, 1)) > Asc("z")))
                text_line = Mid$(text_line, 2)
            Wend
' Cut ending " and ,
            While ((Right$(text_line, 1) = Chr$(34)) Or (Right$(text_line, 1) = ","))
                text_line = Left$(text_line, Len(text_line) - 1)
            Wend
            strings(stringNr) = latinCharacter(text_line)
            stringNr = stringNr + 1
        Loop
    ts.Close
    loadVerbs = strings
End Function

但结果相同。文本中有一些这样的字符:á í é ó à ò ì è â û î ñ ç 这使得这个“latinCharacter”函数需要转换它们,以便我可以将它们放在电子表格中。但这些字符不会阻止 ReadLine 或 Line Input 读取整行。 有什么建议么??


我认为使用 ADO Stream 更好。优点之一是可以设置正确的字符集。
有关 ADO Stream 的信息请查看此处 https://learn.microsoft.com/en-us/sql/ado/reference/ado-api/stream-object-ado?view=sql-server-ver15

这是一个演示,其中包含文本导入的相关参数及其代表的含义:

Sub AdoStreamDemo()

Dim importPath As String
Dim importFileName As String
Dim objStream As Object
Dim lineOfTextFile As String

  
  importPath = "D:\Your Folder\" 'Don't forget the bakslash (\) at the end
  importFileName = "Your File.xxx" 'Filename with extension
  
  'Initialise ADO Stream
  Set objStream = CreateObject("ADODB.Stream")
  objStream.Charset = "utf-8" 'default is Unicode
  objStream.Type = 2 '2 = Text, 1 = Binary
  objStream.LineSeparator = -1 '-1 = adCrLf (default), 13 = adCr, 10 = adLf
  objStream.Open 'Opens the stream
  objStream.LoadFromFile importPath & importFileName 'Path with backslash (\) at the end and filename
  
  Do Until objStream.EOS 'EOS = End Of Stream
    lineOfTextFile = objStream.ReadText(-2) '-2 = one row, -1 = all
    'Do here what you want to do with every line of text from the file
    Debug.Print lineOfTextFile
  'Next line
  Loop
  
  objStream.Close 'Closes the stream
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从文本文件读取整行时出现问题 的相关文章

  • 使用 C# 在 Excel 中查找和替换文本

    我想使用 C 在 Excel 中查找并替换一组文本 而且我希望此替换仅发生在第一行中的文本 我已经使用Google并找到了一些付费资源 例如Aspose API Spire Xls等 但我正在寻找开源资源或任何其他有效的方法来实现这一目标
  • 将文件拆分为块

    我正在尝试分割格式为以下的文件 some garbage lines target G0 S0 type xy 0 108847E 02 0 489034E 04 0 108711E 02 0 491023E 04 0 108574E 02
  • 在 Python 中绘制 Excel 中的数据

    我必须从 Excel 文件中读取和绘制数据的代码是这样的 import pandas as pd import matplotlib pyplot as plt excel file file1 xlsx file1 pd read exc
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • Excel宏隐藏特定单元格和合并区域

    我试图根据另一个单元格的值隐藏特定单元格 到目前为止 我设法隐藏整行 但无法隐藏特定单元格 Local Currency value show hide item If Range Currency Value USD Then Range
  • Excel Add In - console.log 在哪里输出它的消息 - NodeJS

    我正在尝试使用 JavaScript API 创建 Excel 插件 但我不明白 console log 在哪里输出它们的消息 所有 Microsoft 文档都包含 console log 示例 但没有解释 console log 输出消息
  • 通过 Excel VBA 保存并关闭 powerpoint

    下面的代码根据定义的名称创建多个图表 然后打开具有这些定义的名称的 powerpoint 文件并转储到图表中 除了最后一部分之外 一切都正常 保存并关闭文件 我已将尝试保存和关闭文件的尝试标记为绿色 任何帮助表示赞赏 Sub Slide19
  • Django 1.6 的静态文件

    我花了一整天但没有任何作用 我在这里看到了至少 20 篇关于同一主题的帖子 它们各不相同 有不同的建议 但没有一个对我有用 使用 Python 2 7 运行 Django 1 6 我正在尝试从 django 教程加载民意调查应用程序的 cs
  • 查找最后一列并按最后一列排序

    我需要 Excel 来检测我拥有的最后一列并对该列进行排序 我有一个宏 每次使用它时都会生成一个新列 因此我无法使用常量 Sub sortyness Dim sortdata A1 Cells LastRow LastColumn As R
  • VB:在 Adob​​e Illustrator、Photoshop 中分配给布尔属性

    在使用 VBA 自动化 Adob e Illustrator CS3 时 我发现分配一个布尔变量 to a 布尔属性结果总是分配 False Dim New Path As Illustrator PathItem Dim v As Boo
  • 在单元格更改时循环遍历一系列单元格,以将序列中的下一个数字显示为单元格的新值

    我了解如何循环范围 For Each cell In Range A1 A5 If condition Then End If Next 我知道 OnChange 事件 Private Sub Worksheet Change ByVal
  • Excel,循环遍历 XLSM 文件并将行复制到另一个工作表

    我现在遇到的此代码的主要问题是处理我打开的 xlsm 文件的错误 我对这些文件的 VB 代码没有编辑权限 如果 vb 出错 有没有办法跳过文件 我有一个包含大约 99 个 xlsm 文件的文件夹 我希望循环遍历每个文件并复制每个工作簿中的第
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • VBA 写入文件时对数值进行四舍五入 - 如何防止?

    在下面的代码中 我在确保文件编写器不会将我的数字四舍五入到一定的小数位数时遇到问题 我需要使用变体 因为有时该值是字符串 有时它是数字 我怎样才能强制它准确地写出变量是什么 例如 下面的代码可能显示 0 00038 我想显示确切的值 Dim
  • 以编程方式将参数传递到访问报告中

    我有一个现有的 Access MDB 我正在向运行现有报表的现有表单添加一个命令按钮 所做的更改是 此按钮需要传入一个包含正在报告的记录 ID 的参数 当前报告在 MDB 中的每条记录上运行 我已经更改了报告运行的查询 以使用 ID 值参数
  • 字符串的外部文件,而不是对它们进行硬编码

    我有开发一些 Android 应用程序的经验 这些应用程序可以轻松地拥有可以存储字符串的 XML 字符串文件 上次我开发桌面 Java 应用程序时 我对字符串进行了硬编码 例如按钮标题 标签等 我后来了解到这是不好的做法 我应该将字符串存储
  • 如何通过VBA宏遍历Word文档中的文本

    我想通过宏来计算 Word 文档中的字符 我不知道如何获取 Visual Basic 宏中文本的两个参考并浏览它 我想计算文档中每个字符的数量 例如文档中 ABZBB A x 1 B x 3 Z x 1 Sub Macro1 Dim Box
  • 检查工作表是否存在,如果不存在则创建-VBA [重复]

    这个问题在这里已经有答案了 我已经测试了许多代码 这些代码检查工作表是否存在 基于名称 如果不存在则创建一个 其中一些循环所有工作表 一些引用工作表 如果创建错误则意味着该工作表不存在 哪一种是最合适的 正统的 更快的方式来完成这个任务 目
  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • 具有日期和名称标准的 SUMIFS...仅限月份和年份

    我正在尝试获取 SUMIFS 公式来检查日期列 并仅对与标准日期的匹配年份和月份相对应的值求和 我还希望此 SUMIFS 包含名称标准和日期 IE 单元格 A1 SUMIFS Sheet1 O O Sheet1 D D Sheet2 DAT

随机推荐

  • Conda 安装 BLPAPI

    我遵循以下答案 Anaconda 在环境中安装 blpapi https stackoverflow com questions 41725483 anaconda install blpapi in environment 但无法发表评论
  • 如何在运行时为动态创建的控件添加事件处理程序?

    我正在开发 C Windows 应用程序 我的应用程序从自定义控件库获取控件 按钮 文本框 富文本框和组合框等 并在运行时动态地将它们放入表单中 我如何使用委托为该控件创建事件处理程序 以及如何在特定的自定义控件单击事件中添加业务逻辑 例如
  • 在嵌入式 Flinkrunner (apache_beam [GCP]) 中使用 pub/sub io 运行光束流管道 (Python) 时出错

    我在 Flinkrunner 上的 Apache Beam 中运行流管道 python 时遇到以下错误 该管道包含 GCP pub sub io 源和 pub sub 目标 WARNING root Make sure that local
  • 在 javascript 中对对象数组应用 group by 和 sum

    我需要一些关于实现对 JSON 数据应用 group by 和 sum 的目标的正确方法的建议 一些服务器端代码实际上生成了我必须使用的 JSON siteDetails printerCode 660103684 siteId UTT21
  • MySQL 各种类型的列

    我似乎经常发现自己想要将多种类型的数据 通常是整数和文本 存储在 MySQL 数据库的同一列中 我知道这很可怕 但发生这种情况的原因是当我存储人们对调查问卷中的问题做出的回答时 有些问题需要整数响应 有些需要文本响应 有些可能是从列表中选择
  • 将 JavaScript 变量值转换为 csv 文件

    我的 js 文件中有一个逗号分隔的变量 例如 var out out 1 val1 val2 val3 val4 n out 2 val1 val2 val3 val4 n out 3 val1 val2 val3 val4 n 我正在使用
  • GLFW 无法正确链接

    最近我开始了一个涉及 GLFW 64 位 带有 GLEW 的项目 但是 我似乎无法让它正确链接 我的设置方式如下 操作系统 Windows 8 64位 编译器 mingw64 IDE 日食 我的简单测试程序 include
  • 更大的项目 Node.js 和 RESTful API

    我正在研究node js 它看起来确实是一个非常好的环境 我使用过许多不同的服务器技术 主要是 php 和 Java jsp 但也涉足了一些 RoR 和 Python 我发现 Node js 非常容易启动和运行 使用起来感觉很自然 而且我发
  • 在 Symfony 4 / Twig 模板中包含资源(CSS、JS)

    我正在学习 Symfony 并尝试在 Symfony 4 中设置样板应用程序 这个 Symfony 文档 https symfony com doc current templating html描述如何在页面中包含资产 即使用asset包
  • 三元运算符无法使用 PHP 中的引用变量[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 为什么这不
  • 堆栈和队列之间的基本区别是什么?

    堆栈和队列之间的基本区别是什么 请帮助我 我无法找到差异 How你区分堆栈和队列吗 我在各种链接中搜索答案并找到了这个答案 在高级编程中 堆栈被定义为元素的列表或序列 通过将新元素放置在现有元素的 顶部 来延长元素 并通过从现有元素的顶部删
  • MobX 对象数组上的深度自动运行

    我看过这个问题 https github com mobxjs mobx issues 90在 Github 上和这个问题 https stackoverflow com questions 40568576 make single mob
  • Pinterest 流行的 pin 算法是什么?

    他们如何计算某个 pin 是否受欢迎 我心里有这样的想法 转发 150 评论 100 点赞 50 时间 150 估计不会告诉外面的人吧 但根据我的经验 流行度算法一开始就像你建议的那样 但随着时间的推移往往会被改进并变得更加复杂 到目前为止
  • EXCEPT 子句的访问替代

    如何才能获得与在 ms access 中使用下面的 SQL 代码得到的相同结果 它不识别EXCEPT条款 SELECT DISTINCT P Name T Training FROM Prof AS P Training done AS T
  • Word 2007 加载项任务窗格在一种特定情况下不起作用

    我刚刚开始使用 Word VSTO 插件 我想向功能区添加一个组 其中有一个用于切换自定义任务窗格的按钮 我希望每个文档都有自己独立的任务窗格 我的这个大部分工作正常 但有一种情况不起作用 启动 Word 打开新文档 一切正常 打开现有文档
  • iOS 应用程序中使用的 API 密钥和机密 - 将它们存储在哪里?

    我正在为 iOS 进行开发 我需要使用 API 密钥和秘密向某些 API 发出请求 但是 我不希望它在我的源代码中公开 并在我推送到我的存储库时泄露秘密 此案例的最佳实践是什么 将其写入一个单独的文件中 并将其包含在 gitignore 中
  • Phonegap 合并目录 - 资产未合并

    我是 PhoneGap 的老手 版本 3 4 目前我的项目结构如下 cordova config json hooks README md merges android js index js platforms gitkeep plugi
  • 猫鼬 - “保存”方法不存在

    考虑在 MongooseJS 上运行的 mongodb 集合 示例代码 Person where uid equals 19524121 select name exec function err data Here I can get t
  • Xcode 11 Beta 5 - 模态仅触发一次

    我刚刚升级到 Xcode 11 Beta 5 并更新我的 SwiftUI 项目 在以前的版本中我想使用演示链接显示模式的组件 我遇到了和现在一样的问题 模态只显示一次 正如我在其他 SO 帖子中看到的那样 我认为这是一个错误 所以我尝试升级
  • 从文本文件读取整行时出现问题

    我有一个程序 可以从文本文件 从 Notes 中使用 UTF 保存 读取文本行 大约 3000 4000 行 每行由大约 300 900 个字符组成 我使用了这个功能 Function loadVerbs2 fullPathName As