我们有一个成熟的代码体,可以将文件中的数据加载到数据库中.有几种文件格式; 它们都是固定宽度的字段.
部分代码使用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) 我已成功编写了一个代码,使用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) 固定宽度文件格式比XML更有优势吗?我意识到XML可能会占用更多的磁盘空间来存储相同数量的数据,但文件也可以被压缩.从理论上讲,我猜你也可以根据它在文件中的位置读取一段特定的数据(只需抓取那些字节).但除此之外,还有什么?
当HTML表格table-layout设置auto为其列时,它是自动调整大小的.鉴于这种情况有没有办法保持特定列固定宽度?我试过使用CSS宽度 - 似乎没有任何影响.
我有一个标题div和ul下面的菜单.我想完成两件事:
1)ul应该具有与div(外部垂直边界完全相同x位置2)相同的宽度我想保持li元素之间的间距大致相等
通过对li边距和填充的一些试验和错误,我大致达到谷歌Chrome中的第一点(请看这个jsfiddle),但在Firefox li中,ul它们不适合这样,所以它们不会留在一条线上.此外,li当放大/缩小时,最后一个倾向于"溢出"到第二行.
我试了一下margin:5px auto,并padding:5px auto在li元素,但这里auto似乎意味着零.
这真的很难/不可能,还是我忽略了一些明显的东西?
我也试过,width:fit-contents但也没有帮助.
我正在尝试使用从这里获取的每日数据来分析纽约的天气记录: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) 我正在尝试创建一个"固定宽度"表,但只要列中的数据大于其余部分,它就会以某种方式更改列宽.
例如,下表更改最后一个数字的宽度,即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) 在第一次,我只想知道,为什么在Windows 10上的IDE PYCHARM中,当"仅显示等宽字体"选中时,许多字体将不会列在编辑器的字体选择对话框中[设置/编辑器/颜色和字体/ font],也是薄荷.
我不知道pycharm是怎么做的,但是mintty使用了win32 API"LOGFONT".
那么,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]操作系统'我是等宽的'?
所以我知道你可以编写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选项读取固定宽度记录的任何配方.这可能吗?
不幸的是,目前的C++标准缺少stdint标题中定义的C99精确宽度类型.
我能找到(在便携性方面)的下一个最好的事情是Boost的cstdint.hpp从实现Boost.Integer库.
那就是说,我遇到了一些问题:
Boost的实现转储了所有的typedefs boost namesapce(而不是像boost::stdint).这完全是丑陋的,因为现在你被迫using只对你感兴趣的类型使用boost namespace-directive (这是一项额外的维护工作),或者把整个问题带到全球范围内(这会破坏namespaces 的观点)).当然,我可以boost::uint32_t在任何地方都是冗长和类型,但这也不是非常适合未来的².
我基本上是在寻求建议.什么是尽可能透明地利用这些尚未标准(不是在C++'03,无论如何)类型的最佳方式?
对于那些使用此标题或自己编辑的人,如何使用这些类型?盲目地合并boost namespace到全局namespace,前缀与一切" boost::"上撰文指出,包装了一个头Boost.Integer的cstdint.hpp,等等?
任何建议表示赞赏.
最后,说了所有这些(顺便说一下,这不是一个咆哮),我正在编写数学密集型代码,所以宽度保证对我来说很重要.
1 - 当我编写class template将这些类型作为参数的函数时,全局范围是我唯一的选择.
2 - 当标准的下一次迭代stdint.h进入时cstdint,我会遇到一堆带有" boost::" 前缀的代码.那么,这将是一个额外的依赖(即"boost/cstdint.hpp"),这将是完全无用的.
fixed-width ×10
c++ ×2
css ×2
html ×2
html-table ×2
perl ×2
centering ×1
file-io ×1
fonts ×1
html-lists ×1
monospace ×1
optimization ×1
pandas ×1
portability ×1
pycharm ×1
python ×1
read.fwf ×1
tablelayout ×1
types ×1
unpack ×1
winapi ×1
xml ×1