スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--(--)--:--

スポンサー広告 | | | [編集]

▲ページトップ

出力まわりの改善

基本的な入出力の枠組みは出来ているので、次は応用的な出力まわりを検討中。

出力(Decode)のDLLから結果を得ても、出来たものをいきなりファイルに書き出すわけではない(今は書き出しているけど)。
ある程度保存しないといけない。

古い実装では、FIFOによって処理していた。
基本的には複数文字を出力するさい、最初のバイトにフラグを立てて関数に与える。このフラグと後のバイトが「一文字分」となる。UTF-8みたいに複数バイトで1文字なものを連想すると分かり易い。

これがFIFOに蓄えられ、満タンになるか、フラッシュされるまで蓄積され、それがやがてファイルに吐き出される。
それまでは、必要に応じて「キャンセル」でき、一文字分をキャンセルするとフラグまでのバイト全部が消えてくれる感じ。この辺りの処理を次に作る予定。

例えば'Aという文字を例とすると、A、次に'が来る(ことが多い)。
まずAをFIFOに入れる。次のバイトが'なので、前のAをキャンセルして、'Aという文字のバイトを入れる、という感じ。後に何が来ようとも、これなら安心してどんどん書き出せる。


ただFIFOではなく、今回はリングバッファで処理しようかなと考えている。

以前の実装では、関数を呼ぶとFIFOから一文字分をキャンセルできる仕様にしていたけど、今回は動作が全く違うので、方法を検討中。
一度に二文字も三文字もキャンセルすることは滅多に無いと思われるので、出力(Decode)側がフラグを立てて返した時に、一回キャンセルするようにしようかと考えている。

2008/11/16(日)02:59 |Comments(0) |Trackback(0)

製造開発 | プログラミング | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

出力はリングバッファ ホーム 重大な事を解決させた
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
▲ページトップ

カレンダー

05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

主として「ICカードこれひとつ」や「文字、文字コード」処理、時々C++などについて記述しています。

twitterツイッター

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などを随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。