我基本上需要一个文本编辑器,它可以在网格中显示文本,这样我就可以知道文本的确切列号。我使用的数值模拟软件 TOUGH+(用 FORTRAN 编写)具有严格的格式,我需要以精确的格式指定我的输入文件。
这里或那里放错一个字母可能会使整个文件变得毫无用处。所以我需要这个来快速浏览输入文件,并知道/验证哪个文本在哪一列开始和结束。否则,文件有时会变得混乱。
例如,在输入文件片段的图像中,很难一眼就分辨出一个值在哪个地方结束,另一个值在哪个地方开始。
我尝试过的最有用的东西是 Notepad++ 中的 TextFX 插件,但是它非常不雅观,因为它只是放置一些字符文本来查看列号。
描述我的要求的最好方式是电子表格,但它在一个单元格中只占用一个字符。
答案1
作为答案发布,因为它太大了,甚至无法容纳多条评论。披露:我没有尝试过其中任何一个,但有些已被接受为答案。
- Atom 编辑器中有多个边距吗?SO 上说这是可能的,并且答案被接受了。
- IntelliJ IDE:如何添加一个或多个边距在这个网站上有一个公认的答案,说你可以用 Sublime text(它不是一个 IDE)来做到这一点,另外还有一个带有屏幕截图的评论,展示了如何使用 PyCharm(JetBrains 的出色的并且免费(甚至可用于商业用途)Python IDE。
就我个人而言,我发现编写一个 Python 脚本来执行以下操作非常简单:
- 从每行中删除多个空格
- 将每行拆分成多个单词
- 根据需要插入空格
答案2
如果您能够使用 Microsoft Access,则可以使用类似于 Excel 的文本转列方法,但其优点是可以保存您的规范以供重复使用。这会将您的固定宽度文本文件导入易于阅读的数据表中。重复导入只需三四次点击即可。
(我不知道这是否与你相关,所以我想把这作为评论,但我没有这方面的名声。)
答案3
使用 VBA(宏)可以轻松解决这个问题:
此代码将循环遍历活动工作簿中的所有工作表,找到搜索范围在每个工作表上,并将值存储在名为查找地址工作表在排队工作表索引的列A
。
Sub FindAddress()
Sheetindex = 1
For Each ws In Worksheets
If ws.Name <> FindAddressWorksheet Then
FindAddressWorksheet.Cells(Sheetindex, 1).Value = _
ws.Range(Myrange).Value
Sheetindex = Sheetindex + 1
End If
Next
End Sub
怎么运行的:
- 将此宏复制并粘贴为标准模型。
- 输入要搜索的所有数据,并将其命名为迈兰奇(此名称可编辑)。
- 将任意空白表命名为查找地址工作表(工作表名称可编辑)在运行宏之前。
如果您仅在工作表上工作,则可以使用它:
Sub FindRange()
Dim rngX As Range
Dim Data As String
Data = InputBox("Write Value", "Obtain Cell Address")
Set rngX = Worksheets("Sheet1").Range("A1:AFD65000").Find(Data, lookat:=xlPart)
If Not rngX Is Nothing Then
MsgBox "Found at " & rngX.Address
End If
End Sub
注意:
- 工作表名称和数据范围是可编辑的。
答案4
如果您知道 unix vi 文本编辑器,您可以在其中打开文本文件并初步猜测特定字段或文本项从哪一列开始。例如,如果某个项看起来可能位于第 45 列或附近,则输入 45|(竖线),光标将直接移至该列。然后,您可以按空格或退格键,同时保持计数以确定真正的列号。我碰巧有一个 PC 版的 vi 编辑器,我在命令行上经常使用它。希望这对您有所帮助。