問題タブ [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() を使用して各レコードを解析することです。より良い方法はありますか?
たとえば、フォーマットは次のように記述できます。
2 つのレコードを含むサンプル ファイルは次のようになります。
Substring() よりもエレガントな方法を見落としていないことを確認したいだけです。
更新: 最終的には、Killersponge が提案したような正規表現を使用しました。
次に、以下を使用してフィールドにアクセスします。
fixed-width - 固定幅、大規模データの問題
私は現在、あらゆる種類の解像度1024..1920またはそれ以上の解像度で人々が見ることができるWebアプリケーションを設計しています。
私は固定幅のデザイン(他の多くの人気のあるWebサイト、たとえばStackOverflow、CNN、Mint、WSJ、BofAなど)を選択しました。最小公分母は1024を意味します。
ここで問題となるのは、アプリケーションの一部のページでグリッドベースのデータを表示する必要があることです。画面の大部分を空のままにして、1024幅の圧縮グリッドデータに制限すると、大画面の人を本当に怒らせると思います。
解像度ごとにスタイルシートなどを変えてみようと思ったのですが、それ以上にメンテナンスやグラフィックスなどの作業が増えてしまいます。
これを解決する方法について何かアイデアはありますか(私は今ここに「創造的なブロック」があるかもしれないと思っています:))流動的なデザインに完全に行く必要はありません。自体?
c++ - Portable C++ 03 正確な幅の型
バックグラウンド
stdint
残念ながら、現在の C++ 標準には、ヘッダーで定義された C99 の正確な幅の型がありません。
私が見つけることができた次善のもの (移植性の観点から) は、ライブラリからBoost
の のcstdint.hpp
実装でした。Boost.Integer
懸念
とはいえ、いくつかの問題があります。
Boost
typedef
の実装は、boost namesapce
( のようなものではなく) 内のすべての をダンプしboost::stdint
ます。これは完全に醜いです。using
これは、関心のある型でのみ - ディレクティブを使用することを余儀なくされるか (これは余分なメンテナンス作業です)、全体boost namespace
をグローバル¹ スコープにする必要があるためです (これはnamespace
sのポイントを無効にします)。 )。もちろん、たとえば、冗長にしboost::uint32_t
てどこにでも入力することもできますが、これも将来にあまり適していません²。
質問
私は基本的にアドバイスを探しています。これらのまだ標準化されていない (とにかく C++ '03 ではない) 型を可能な限り透過的に利用するための最良の方法は何ですか?
このヘッダーを使用している、または独自のヘッダーを作成している方は、これらのタイプをどのように使用しますか? boost namespace
をやみくもに globalにマージし、namespace
すべての前に " "を付けboost::
、 をラップするヘッダーを書きましたか?Boost.Integer
cstdint.hpp
アドバイスをいただければ幸いです。
最後に、すべてのことを言いました (ちなみに、これは暴言ではありません)。私は数学集約的なコードを書いているので、幅の保証は私にとって重要です。
明確化
class
template
1 - グローバル スコープは、これらの型を引数として受け取る関数 / を作成するときの唯一のオプションです。
2 - 標準の次のイテレーションが にラップstdint.h
されるcstdint
とき、私は " " で始まる一連のコードで立ち往生しますboost::
。これは、まったく役に立たない追加の依存関係 (つまり、「boost/cstdint.hpp」) になります。
perl - Perlで固定幅形式から列を抽出するにはどうすればよいですか?
次のようなさまざまなデータ要素を実行して取得する Perl スクリプトを作成しています。
このテキスト ファイルの各行を問題なく取得できます。
これらの各フィールドを取得するために正規表現を使用しています。$line などの変数に行を追加したら、区切り文字が異なる場合でも、これらの各フィールドを取得して独自の変数に配置するにはどうすればよいですか?
html - Perl フォーマット (iesprintf) が HTML 表示に保持されない
少し問題が発生しました。もともと、次の形式の入力があります。
最初の列を $num として保存し、2 番目の列を $fruit として保存しました。出力を次のようにしたい (以下を参照)。$num がすべて同じ長さであるかのように、出力を揃えたいと思います。実際には、$num は可変長の数値で構成されます。
提案どおり、次のコードを使用します。
このソリューションはコマンドライン表示ではうまく機能しますが、HTML 経由で表示しようとすると、このフォーマットは保持されません。例えば..
これにより、フォーマット前のオリジナルと同じ出力が生成されます。HTML Webベースの表示でsprintfフォーマットを保持する方法について提案はありますか? $num を空白で埋めようとしましたが、次のコードはうまくいかないようです。
とにかく、私は何か提案をいただければ幸いです。ありがとう!
perl - Perl の固定幅データの処理を高速化するにはどうすればよいですか?
ファイルからデータベースにデータをロードする成熟したコード本体があります。いくつかのファイル形式があります。これらはすべて固定幅フィールドです。
コードの一部では、Perlunpack()
関数を使用して、フィールドを入力データからパッケージ変数に読み取ります。ビジネスロジックは、これらのフィールドを「人間が読める」方法で参照できます。
ファイル読み取りコードは、ファイルを読み取る前に、フォーマット記述から一度生成されます。
スケッチ形式では、生成されたコードは次のようになります。
コードをプロファイリングすると、時間の約 35% がアンパックと先頭のスペース ストリップに費やされていることがわかります。残りの時間は、データの検証と変換、および出力ファイルへの書き込みに費やされます。
実行時間の 1 ~ 2% を超えるビジネス ロジックの部分はないようです。
問題は、どうにかしてアンパッキングとスペースストリッピングからもう少し速度を上げることができるかということです。できれば、FIELDS パッケージ変数を参照するすべてのコードをリファクタリングする必要はありません。
編集:
それが違いを生む場合
java - Javaでの固定幅フォーマットのファイルの解析
1行に115個の固定幅フィールドがあるベンダーからのファイルがあります。そのファイルを115フィールドに解析して、コードで使用できるようにするにはどうすればよいですか?
私の最初の考えは、のように、そしてを使用して、各フィールドの定数を作成するNAME_START_POSITION
ことNAME_LENGTH
ですsubstring
。それは醜いように見えるので、これを行うためのより良い方法に興味があります。グーグル検索で見つかったいくつかの図書館のどれも、これ以上良いとは思えなかった。
google-chrome - Chromeとdiv(または他のタグ)の固定幅
私はこのように見えるいくつかのhtmlを持っています:
IE.8では、これは次のように表示されます。
そして、すべての「ビタミン」はうまく整列しています。Chromeではギャップが作成されないため、適切にレンダリングされません。
問題は、これはChromeの問題/バグですか、それともhtmlが正しくなく、ie8(この場合)が私の意図をより適切に推測しているためですか?
java - Netbeansでのビットマップフォントの使用
Netbeansでビットマップ(.fon)フォントを使用することは可能ですか?私は特に好きなフォント(Raize font)を持っていますが、それをエディターフォントとして設定しようとすると、リストのどこにも表示されません。他のエディター(Notepad ++、pspad、visual c ++ expressなど)で使用できます。jeditでも使えません。この問題はJavaに関連していますか?
sql-server-2005 - SSISを使用して長い固定幅のレコードをフラットファイルに出力する
テーブルの内容とすべての列を取得してフラットファイルに出力する作業用のSSISパッケージを作成する必要があります。問題は、列の1つがvarchar(5100)であり、行の合計サイズが約5200文字になることです。フラットファイル接続マネージャーエディターでは、483文字を超える固定幅の行を定義できないようです。
私はこれをいくつかの方向から試してみました。列自体に区切り文字が含まれていないため(たとえば、CR / LFがないため)、不規則な右オプションは機能しないようです。それらは本当に固定幅です。しかし、フラットファイル接続マネージャーに483文字を超えるように指示する方法がわかりません。私がここで何ができるか誰か知っていますか?
ありがとう!