问题标签 [fixed-width]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 从文本文件中读取固定宽度的记录
我有一个充满记录的文本文件,其中每条记录中的每个字段都是固定宽度。我的第一种方法是简单地使用 string.Substring() 解析每条记录。有没有更好的办法?
例如,格式可以描述为:
一个包含两条记录的示例文件可能如下所示:
我只是想确保我没有忽略比 Substring() 更优雅的方式。
更新: 我最终使用了 Killersponge 建议的正则表达式:
然后我使用以下内容访问这些字段:
c++ - Portable C++ 03 精确宽度类型
背景
不幸的是,当前的 C++ 标准缺少在stdint
标头中定义的 C99 的精确宽度类型。
我能找到的下一个最好的东西(就可移植性而言)是从库中实现Boost
的。cstdint.hpp
Boost.Integer
关注点
也就是说,我遇到了一些问题:
Boost
的实现转储所有的typedef
s boost namesapce
(而不是类似的东西boost::stdint
)。这非常难看,因为现在您要么被迫using
仅对您感兴趣的类型使用 -directive(这是一项额外的维护工作),要么将整个boost namespace
指令带入全局¹范围(这违背了namespace
s的观点)。例如,我当然可以很冗长,boost::uint32_t
到处打字,但这也不是很适合未来的²。
问题
我基本上是在寻求建议。尽可能透明地利用这些尚不标准(无论如何都不是在 C++ '03 中)类型的最佳方法是什么?
对于那些使用此标头或滚动您自己的标头的人,您如何使用这些类型?盲目地把 's 合并boost namespace
到全局namespace
中,用“”前缀所有的东西boost::
,写一个包装Boost.Integer
's的标题cstdint.hpp
,等等?
任何建议表示赞赏。
最后,说了这么多(顺便说一句,这不是咆哮),我正在编写数学密集型代码,所以宽度保证对我来说很重要。
澄清
1 - 当我编写class
template
将这些类型作为参数的函数/s 时,全局范围是我唯一的选择。
2 - 当标准的下一次迭代包含stdint.h
到cstdint
时,我会遇到一堆以“ boost::
”为前缀的代码。那么,这将是一个完全无用的额外依赖项(即“boost/cstdint.hpp”)。
perl - How can I extract columns from a fixed-width format in Perl?
I'm writing a Perl script to run through and grab various data elements such as:
I can grab each line of this text file no problem.
I have working regex to grab each of those fields. Once I have the line in a variable, i.e. $line - how can I grab each of those fields and place them into their own variables even though they have different delimiters?
html - html 显示中未保留 Perl 格式 (iesprintf)
我遇到了一些问题。最初,我有以下格式的输入:
我将第一列保存为 $num,将第二列保存为 $fruit。我希望输出看起来像这样(见下文)。我希望输出对齐,就好像 $num 的长度一样。实际上,$num 将由可变长度的数字组成。
按照建议,我使用以下代码:
此解决方案在命令行显示中效果很好,但是当我尝试通过 HTML 显示此格式时,不会保留此格式。例如..
这会产生与格式化前的原始输出相同的输出。你们对我如何在基于 web 的 html 显示中保留 sprintf 格式有什么建议吗?我尝试用空格填充 $num,但以下代码似乎对我不起作用。
无论如何,我将不胜感激任何建议。谢谢!
perl - 如何加快 Perl 对固定宽度数据的处理速度?
我们有一套成熟的代码,可以将文件中的数据加载到数据库中。有几种文件格式;它们都是固定宽度的字段。
部分代码使用 Perlunpack()
函数将输入数据中的字段读取到包变量中。然后,业务逻辑能够以“人类可读”的方式引用这些字段。
文件读取代码在读取文件之前由格式描述生成一次。
在草图形式中,生成的代码如下所示:
分析代码显示,大约 35% 的时间花在解包和前导空格条上。剩余时间用于验证和转换数据以及写入输出文件。
似乎没有任何一个业务逻辑部分占用超过 1-2% 的运行时间。
问题是——我们能否以某种方式从拆包和空间剥离中获得更快的速度?最好不必重构所有引用 FIELDS 包变量的代码。
编辑:
万一它有所作为
java - 在 Java 中解析固定宽度格式的文件
我从供应商那里得到一个文件,每行有 115 个固定宽度的字段。如何将该文件解析为 115 个字段,以便在我的代码中使用它们?
我的第一个想法就是为每个字段创建常量,例如NAME_START_POSITION
andNAME_LENGTH
和 using substring
。这看起来很丑,所以我很好奇更好的方法。谷歌搜索的几个图书馆似乎也没有一个更好。
google-chrome - div(或其他标签)上的 Chrome 和固定宽度
我有一些看起来像这样的html:
在 IE.8 中,这显示为
并且所有的“维生素”都很好地排列在一起。在 Chrome 中,没有创建间隙,因此渲染得不好。
问题是:这是 Chrome 的问题/错误,还是因为 html 不正确而 ie8(在这种情况下)只是更好地猜测我的意图?
css - 为什么我的菜单 DIV 溢出其父级?
菜单 div 溢出了父级。
“科学只是对自身的一种变态……”
java - 在 Netbeans 中使用位图字体
是否可以在 Netbeans 中使用位图 (.fon) 字体?我有一种我特别喜欢的字体(Raize font),当我尝试将它设置为编辑器字体时,我在列表中的任何地方都看不到它。我可以在其他编辑器(Notepad++、pspad、visual c++ express 等)中使用它。我也不能在 jedit 中使用它。这个问题与java有关吗?