标签: fixed-width

如何加快Perl处理固定宽度数据的速度?

我们有一个成熟的代码体,可以将文件中的数据加载到数据库中.有几种文件格式; 它们都是固定宽度的字段.

部分代码使用Perl unpack()函数将输入数据中的字段读入包变量.然后,业务逻辑能够以"人类可读"的方式引用这些字段.

在读取文件之前,从格式描述生成文件读取代码一次.

在草图形式中,生成的代码如下所示:

while ( <> ) {

    # Start of generated code.

    # Here we unpack 2 fields, real code does around 200.
    ( $FIELDS::transaction_date, $FIELDS::customer_id ) = unpack q{A8 A20};

    # Some fields have leading space removed
    # Generated code has one line like this per affected field.
    $FIELDS::customer_id =~ s/^\s+//;

    # End of generated code.

    # Then we apply business logic to the data ...
    if ( $FIELDS::transaction_date eq $today ) {
        push …
Run Code Online (Sandbox Code Playgroud)

optimization perl unpack fixed-width

5
推荐指数
2
解决办法
758
查看次数

用C++中心Pascal的三角形输出

我已成功编写了一个代码,使用cout.width(total_rows - current_row)以稍微三角形的形状输出Pascal的三角形,但它看起来像这样:

               1 
              1 1 
             1 2 1 
            1 3 3 1 
           1 4 6 4 1 
          1 5 10 10 5 1 
         1 6 15 20 15 6 1 
        1 7 21 35 35 21 7 1 
       1 8 28 56 70 56 28 8 1 
      1 9 36 84 126 126 84 36 9 1 
     1 10 45 120 210 252 210 120 45 10 1 
    1 11 55 165 330 462 462 330 165 55 11 …
Run Code Online (Sandbox Code Playgroud)

c++ fixed-width centering pascals-triangle

5
推荐指数
1
解决办法
5000
查看次数

为什么固定宽度的文件格式仍在使用?

固定宽度文件格式比XML更有优势吗?我意识到XML可能会占用更多的磁盘空间来存储相同数量的数据,但文件也可以被压缩.从理论上讲,我猜你也可以根据它在文件中的位置读取一段特定的数据(只需抓取那些字节).但除此之外,还有什么?

xml fixed-width

5
推荐指数
4
解决办法
9458
查看次数

HTML表格中的固定宽度列,表格布局= auto

当HTML表格table-layout设置auto为其列时,它是自动调整大小的.鉴于这种情况有没有办法保持特定列固定宽度?我试过使用CSS宽度 - 似乎没有任何影响.

html html-table tablelayout fixed-width

5
推荐指数
2
解决办法
5129
查看次数

如何在固定宽度<ul>的单行上保持<li>元素?

我有一个标题divul下面的菜单.我想完成两件事:

1)ul应该具有与div(外部垂直边界完全相同x位置2)相同的宽度我想保持li元素之间的间距大致相等

通过对li边距和填充的一些试验和错误,我大致达到谷歌Chrome中的第一点(请看这个jsfiddle),但在Firefox li中,ul它们不适合这样,所以它们不会留在一条线上.此外,li当放大/缩小时,最后一个倾向于"溢出"到第二行.

我试了一下margin:5px auto,并padding:5px autoli元素,但这里auto似乎意味着零.

这真的很难/不可能,还是我忽略了一些明显的东西?

我也试过,width:fit-contents但也没有帮助.

css html-lists fixed-width

5
推荐指数
2
解决办法
4万
查看次数

使用read_fwf()读取pandas数据帧中的伪造数据

我正在尝试使用从这里获取的每日数据来分析纽约的天气记录:http://cdiac.ornl.gov/epubs/ndp/ushcn/daily_doc.html

我正在加载数据:

tf = pandas.read_fwf(io.open('state30_NY.txt'), widths=widths, names=names, na_values=['-9999'])
Run Code Online (Sandbox Code Playgroud)

哪里:

>>> widths
[6, 4, 2, 4, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 1, 5, 1, …
Run Code Online (Sandbox Code Playgroud)

python file-io fixed-width pandas read.fwf

5
推荐指数
1
解决办法
3779
查看次数

禁用在html表中更改宽度

我正在尝试创建一个"固定宽度"表,但只要列中的数据大于其余部分,它就会以某种方式更改列宽.

例如,下表更改最后一个数字的宽度,即10.

<table>
    <tr>
        <td rowspan="3">1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
    </tr>
    <tr>
        <td>5</td>
        <td rowspan="2" colspan="2">7</td>
    </tr>
    <tr>
        <td>6</td>
    </tr>
    <tr>
        <td>8</td>
        <td colspan="2">9</td> 
        <td>10</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这是我的CSS:

table {
    border: 1px solid;
    width: 400px;
    height: 300px;
}
Run Code Online (Sandbox Code Playgroud)

html css html-table fixed-width

5
推荐指数
1
解决办法
1万
查看次数

字体如何告诉操作系统"我是一个蒙太奇/固定宽度的字体"?

在第一次,我只想知道,为什么在Windows 10上的IDE PYCHARM中,当"仅显示等宽字体"选中时,许多字体将不会列在编辑器的字体选择对话框中[设置/编辑器/颜色和字体/ font],也是薄荷.

我不知道pycharm是怎么做的,但是mintty使用了win32 API"L​​OGFONT".

那么,Windows OS是如何知道字体是否是等宽的(固定宽度)?

ie:列出"源代码专业版","源代码专业版黑色/超轻/轻...不是;

列出了"fira代码",但fira代码轻/中/视网膜不是;

并且,如果"仅显示等宽",则不会列出其他一些等宽字体.

似乎pycharm只有在选中"show only monospced fonts"时才识别字体系列名称

在OSX(Mavericks)中,它有点复杂:如果选中'仅显示等宽字体',pycharm仍然可以获得姓氏,但是如果安装了粗糙加权字体版本,则无法知道哪个字体权重是默认的.


然后,我尝试修改一些字体,并顺便看一下原始字体的'file-info'字体伪造,但我不知道哪个部分真正影响WINDOWS或PYCHARM(IDEA/INTELIJ /由JDK实际上?)知道哪种字体是等宽的.

在"OS/2"部分中,检查了固定宽度/等宽/等宽的任何参数,但没有任何帮助,并且在windows中pycharm仍然无法检测到它们.

所以,最后,我真的很想知道,TTF文件或任何其他字体文件类型使用哪个参数告诉[windows/osx/mac os/linux]操作系统'我是等宽的'?

winapi fonts fixed-width pycharm monospace

5
推荐指数
1
解决办法
608
查看次数

如何使用-0选项读取Perl中的固定宽度记录?

所以我知道你可以编写Perl单行程序,用非默认记录分隔符读取记录,例如

perl -064 -ne '#... delimited by @'
Run Code Online (Sandbox Code Playgroud)

或者将整个文件放在一行:

perl -0777 -ne '#... file at once'
Run Code Online (Sandbox Code Playgroud)

我也知道,如果您以编程方式将记录分隔符设置$\为对数字的引用,则可以读取固定宽度的记录.

perl -ne '$/ = \10; #... 10 chars at a time'
Run Code Online (Sandbox Code Playgroud)

但我找不到的是使用该-0选项读取固定宽度记录的任何配方.这可能吗?

perl command-line-interface fixed-width

5
推荐指数
1
解决办法
42
查看次数

Portable C++ 03精确宽度类型

背景


不幸的是,目前的C++标准缺少stdint标题中定义的C99精确宽度类型.

我能找到(在便携性方面)的下一个最好的事情是Boostcstdint.hpp从实现Boost.Integer库.

关注


那就是说,我遇到了一些问题:

Boost的实现转储了所有的typedefs boost namesapce(而不是像boost::stdint).这完全是丑陋的,因为现在你被迫using只对你感兴趣的类型使用boost namespace-directive (这是一项额外的维护工作),或者把整个问题带到全球范围内(这会破坏namespaces 的观点)).当然,我可以boost::uint32_t在任何地方都是冗长和类型,但这也不是非常适合未来的².

问题


我基本上是在寻求建议.什么是尽可能透明地利用这些尚未标准(不是在C++'03,无论如何)类型的最佳方式?

对于那些使用此标题或自己编辑的人,如何使用这些类型?盲目地合并boost namespace到全局namespace,前缀与一切" boost::"上撰文指出,包装了一个头Boost.Integercstdint.hpp,等等?

任何建议表示赞赏.

最后,说了所有这些(顺便说一下,这不是一个咆哮),我正在编写数学密集型代码,所以宽度保证对我来说很重要.

澄清


1 - 当我编写class template将这些类型作为参数的函数时,全局范围是我唯一的选择.

2 - 当标准的下一次迭代stdint.h进入时cstdint,我会遇到一堆带有" boost::" 前缀的代码.那么,这将是一个额外的依赖(即"boost/cstdint.hpp"),这将是完全无用的.

c++ portability types fixed-width

4
推荐指数
1
解决办法
1120
查看次数