Advent Axys、ファイナンシャル プランナー向けのソフトウェアなどと統合するプログラムを作成しようとしています。製品のサイトはこちら: http://www.advent.com/solutions/asset-managers-software/axys-platform
価格ファイルに新しいエントリを書き込む必要がありますが、それらの多くはバイナリです。私はオンラインで見回しましたが、あまり見つかりませんでした。サポートに電子メールを送りましたが、それが役立つとは思えません.
私は短いダミーファイルと、プログラムがそのファイルに与える印刷物を持っています。それが単語の文字または記号である場合は文字を出力し、それ以外の場合は ASCII val を出力する ruby スクリプトを介してファイルを実行しました。Rubyスクリプトは次のとおりです。
pri = File.read '062109_dummy.pri'
pri.each_byte do |char|
print char.chr =~ /[\w!@#\$%\^&\*\(\)\-\\\/\+\.]/ ? char.chr : ' ' + char.to_s + ' '
end
そして出力:
pri1.001 254 250 251 252 29 0 0 2 adusnok 0 0 0 0 0 0 0 0 0 33333s7@ 1 254 250 251 252 29 0 0 2 csusxom 0 0 0 0 0 0 0 0 0 H 225 z 20 174 GA@ 1 254 250 251 252 29 0 0 2 etusvv 0 0 0 0 0 0 0 0 0 0 246 (\ 143 194 213 F@ 1 254 250 251 252 29 0 0 2 fdusoakbx 0 0 0 0 0 0 0 174 G 225 z 20 174 (@ 1 254 250 251 252 29 0 0 2 oousfidde09 0 0 0 0 0 154 153 153 153 153 185 S@ 1 254 250251 252 29 0 0 2 qpusfid_eqix 0 0 0 0 164 p 61 10 215 cL@ 1 254 250 251 252 29 0 0 2 vausvg_sc 0 0 0 0 0 0 0 )\ 143 194 245 248 P@ 1
数値の周りにスペースがある場合、それはバイトの値であることを意味し、そうでない場合、バイトの値はその数値の ASCII 表現であることに注意してください。
文字列(「adusnok」など)が株などを表していることは知っています。次に、シンボルのスペースが固定サイズであるため、0 のビットがあります (これが、長いシンボルの後に 0 が少ない理由です)。このシーケンス@ 1 254 250 251 252 29 0 0 2
は、新しいレコードのシンボルの直前に来て、レコードの終わりを示しているようです。あるいは、これらすべてに同じものを意味するものもありますが、同じようには見えません。その後は、基本的に何も知りません。私は、プログラムがマップすると考えているもののプリントアウトを持っています。各列を 3 つのスペースで区切ると、次のようになります。
adus nok 23.45 NOKIA CORP ADR 0.393 05/30/2008
csus xom 34.56 EXXON MOBIL CORPORATION COM 1.68 06/10/2009
etus vv 45.67 VANGUARD LRG CAP ETF US PRIME MKT 750 1.04 3/31/2009
もっとありますが、それはあなたにかなり良いアイデアを与えるはずです. 説明やその他の可能性があるものが他のファイルに保存されており、単に検索されている可能性は十分にあると思います。しかし、これらは価格ファイルであり、それが要点であるため、価格がそのファイルにあることは知っています。そう:
33333s7 => 23.45 H225 z 20 174 GA => 34.56 246 (\143 194 213 F => 45.67
3 と 7 を最初の 1 つに保存してください。すべての数値はバイトの値であり、値の ASCII 表現ではありません。また、これらの値は単なる価格ではありませんが、間違いなく価格を表していることに注意してください。
何か案は?一般的なバイナリ エンコーディングには詳しくありませんが、かなり一般的な方法を使用していても驚かないでしょう。