堕天使の煉獄

Gallery
Comic
Story
Production
Work
Link

2024-05

26

07:02:32

今月中におわるかな

あの後、結局明示的にshift-jis変換出来たほうがいいよなーってことで、windows.hをincludeする羽目に。
うーん、windows.hは大量のマクロで名前空間汚すからしたくないんだけどねぇ。
とはいえ、自前でshift-jisするのも昔作ったけど、速度的にも微妙(というかMultiByteToWideChar系が異様に速い)なのと安全性(へんなunicodeとか)も考えると、自前のはどうもなぁと言う感じで。

C++20のmoduleでどうにかならんものかなーとちょっと調べてみたんだけども。
moduleはマクロの名前空間汚染も閉じ込められるんですよね。
そしてwindows.hつかうものMultiByteToWideCharとか使いたいだけなので。

うーん。
できそうな、できないような??
まだまだmoduleあんまよくわかってないのと、調べてみた結果、windows.hはいろんな副作用が多くて、単純にmodule化出来ないらしいというのがわかったぐらい(ぉ

あとは細々とした部分作ったりして、とりあえずソースコード覗くだけのツールは完成ぽ。

そのあとに、ハイライタの指定とかで、正規表現のテストするwidgetとかほしいかなーとおもって、さらにそこだけ抜き出してツール化したものも作ったりもしたんだけども……。

結局、web上である「正規表現チェッカー」のがさっと使えるので、あんまつかわないかも……となった(ぉ
まあ、正規表現でも内部のライブラリがおんなじQtのものでテストできるという利点はあるのだけども……そこまでそれが必要かというと??

まあ、この手のは作ってるときは「これは捗るでぇ!」と思いながら作るんだけど、作った後では一度も起動したこと無い……なんてことはよくある話なので(ぉ


で、その次にちょっとした小物ツールを作り始めてて。

o_016.jpg

見る人が見たら、「ああ、あのツールのパク……代替品ね」と分かるものですがw

もうね、古いランタイムとか入れたくないでござる。
ていうとの、結構作りは簡単そうだったので作ってみたんだけども。

とりあえず設定読み込んで表示、各種コントロール(スピンボックス、コンボボックス)で値変更までは出来。
あとバイナリダンプなんかも追加してみたり。


あとはアンドゥ・リドゥとコピペまわり。
そして最後にアプリ設定まわり整えたら完成なんだけども。

アンドゥ・リドゥは作り的に1~4バイトのデータを読み書きするだけのコマンドしか無いので簡単なんだけども。(後述の3バイトの扱いでちょっとペンディング中)

コピペどうするべきかなーとちょっとプチ悩み中。

こういうテーブルのcolumn毎にデータ形式が違うものって、どうやるのがセオリーなんだろうなと。

とくに複数column選択コピー→貼り付けなんてとき。

column毎にデータタイプみたいなの設定して、それ同士が同じならペースト可能。
ていうのはぱっと浮かぶものの。
実際にはそんな単純なもんではなくて。

例えば1bitフラグ。
特定のbitが立ってるかのフラグデータなんだけども。
別の1bitフラグcolumnでは違うbitが条件になっているわけで。
そうなると、単純にコピー元のcellの値を保持するのでは駄目で「オン・オフ」の情報(bool)で持って、ペーストの際にはどのbitをオンにするのか参照して~みたいな処理いるのねーとか。

リスト形式の場合、リスト形式で4バイトの値を設定するみたいなフィールドの場合、4バイトのデータならデータタイプおんなじだからコピペできるよなーてと、リストは4バイト分のリストがみっちり詰まってるわけでもないので、リストの範囲外の値をペーストする可能性もあるわけで。

そのへん、どこまで許容して、どこまで規制するのかとか、そのへんのルールとかいうかセオリーがまったく定まってないぽ。
普通どうやってんだろ?

単純に経験不足w


経験不足エピーソドとしては。
今まではせいぜい数十件=数百件程度で完結するような小物ツールばっかつくってきたのでQxxxWidget系で十分だったんだけども。

今回のようなときには数万件(左側のバイナリダンプのとことか)のデータをテーブルで扱うとなると、QxxxView系、model/viewな方を使わなきゃいけないわけで。

そっち系あんま使う機会なかったからこれも経験不足なんだよなぁと。

んでも、バイナリエディタでよく見るバイナリダンプ。
いざ作ってみたら、めっさ簡単。
というかQTableViewが便利なんだなと言う感じで。
むしろテーブルの表示のstyle設定周りの方に苦労したぽ。


んで右側のほうはせいぜい数百件~数千件しかデータ無いはずなのに、異様に重い。
テーブル開くのに数秒かかる。
デバッグビルドだからか? と一旦リリースに切り替えてみるも、ちょびっと早くなっただけで、やっぱりくっそ重い。
モデルビューなのになんでこんな重いんだ??

原因は「QHeaderView::ResizeToContents」でしたw

cellの中身のサイズに合わせてヘッダのサイズを調整するオプションなんですけど、これ全テーブル走査するので数百件超えるようなのだと、爆遅になるぽ。
これ外したら普通にサクサク動くように。
数十件程度なら全然問題にならないんですけどね。
普通に地雷オプションじゃねーか……。
でも代わりに自分で幅の調整しなくちゃならなく……メンドイ。

とか、cellに表示するコンボボックスの横幅をセルのサイズに合わせつつ、内容がはみ出るときは内容に合わせて幅を拡張させる……とか。

いろんなノウハウが足りてない=経験不足が色々露呈したなぁ。
ここ数日、ほとんどそういう部分の調べ物に時間食われてた感じ……。


他には、なにげに元の仕様的には3バイトのデータも扱うんだけども。
3バイト型というものは存在しないわけで。
なので4バイトの型で代用するのですが。

テンプレートで
template<typename T>
setData(const T& value, quint32 bitMask){...}

なんかやろうとしたらば……3バイトの型ないからテンプレートで分けれないじゃん……とかなったりw

仕様的には3バイトはあるけど、「実際にはほとんどつかわない」と解説サイトでもかかれてたんだけども。
調べてみたら一個だけ3バイト使ってるところあったよ……。

んでもこれって4バイトデータのところにビットマスクで0x00FFFFFFすれば4バイトとしてあつかえるのでわ? となったり。
3バイトとか型で切り分けられないのとか不便でしょうがねぇ。
なので、3バイトは仕様的には廃止しようかなと。
現行3バイト指定のはビットマスク設定したのに置き換えるかんじで。

そいえば昔、共用体使って3バイト型作るみたいなのなんかで見たな。結局つくってはみたものの、実用性なくね? で結論付けられてたけどw


それから、元のアプリのりどみの「今後の予定」のところに

「設定の仕様変更(主にビット関連)」

てのがあって。
まあ2006年で更新止まってはいるんだけどw

確かに今回つくてみて、ビット関連周りの仕様はもうちょっとなんとかスッキリ出来ないものか……って印象あるですね。
でも作り直してる手前まあ、じゃあどうすんだと言われても困るところではあるのですが(ぉ
確かに設定フォーマット的にも扱いメンドイ部分だなぁと。
無きゃ困る部分でもあるし。


最後の更新履歴にのところに「「ステップ」でビットを指定できるように変更」てのあるんですが。

正直めんどくせぇぇぇぇぇl!!
っていう仕様だったので、ステップでbit指定は「未対応形式」として弾くことに。

なんかbitの並びが、bit指定のほうでやれば横列並びになるのが、ステップにすると縦列並びになるのと、1バイト範囲跨ぐケースもあるので、なんか色々と面倒だぞこれ、となったので。
そして今のところ「ステップでbit指定」のケースまだ見たことないし、弾いても問題ないかなと。

あとは仕様書にない仕様とかどうするべきなのかなとかも。
.iniの中で.idnファイル指定あるけど、.idnファイルが存在しないケースとか。


んでもまあ、zip書庫なんやかんやするツールつくてたときもそうだけど、他人様が考えたフォーマットにしたがって作られたデータを仕様どうりに読み取ってそれが表示されるとなんかワクワクするよね。
お、ちゃんと読めてる読めてるって感じで。

そんな感じで今月中に終わるかな。
終わったらこれで久々にデータいじって、プレイしようかな。

元のアプリがランタイム無いでーって使えなかったのを鑑みるに、このPCになってからプレイしてないんだなーってなった。
結構間空いたなー。
定期てきにやりたくなるんですよね。
やっぱろまさが3は名作だなぁ(とおい目

なにげにいま、おやつ氏がサガエメのプレイ動画上げてるけど、サガスカ同様、同じ路線のサガエメ全く食指が動かなくて、一番最初のちょっと見ただけで興味なくしちゃったなぁ。

やっぱやりたいのはロマサガ3~サガフロ1~ミンサガ1路線なんだよなぁ……。

サガフロ2リマスタとかもなんか話出てきてるらしいけど。
サガフロ2は雰囲気ゲーって感じで雰囲気は良かったんだけどねぇ。
キャラが世代交代やらほぼ固定やらで、育成の楽しみとキャラ選択の自由が低すぎてハマらなかったんですよね。

はふ~
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
03
[憲法記念日]
04
[みどりの日]
05
[こどもの日]
06
[振替]
07
08
09
10
11
12
13
14
15
やたらと時間かかった
16
17
18
19
20
21
22
23
24
25
26
今月中におわるかな
27
28
29
30
31
total:2080610 t:72 y:2908
■記事タイトル■

■年度別リスト■
2024年 2024年12月(0)
2024年11月(0)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年 2023年12月(3)
2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年 2022年12月(4)
2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年 2021年12月(8)
2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年 2020年12月(3)
2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年 2019年12月(1)
2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年 2018年12月(1)
2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年 2017年12月(2)
2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年 2016年12月(7)
2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年 2015年12月(7)
2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年 2014年12月(12)
2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年 2013年12月(15)
2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)

■レス履歴■

2023-09-26 14:59:38 - 久慈光樹

2023-09-26 14:29:10 - 織田霧さくら

2023-09-26 13:10:45 - 久慈光樹

2023-03-20 05:30:16 - 織田霧さくら

2023-03-15 20:42:58 - まうる

2022-12-26 19:14:57 - 織田霧さくら

2022-12-25 02:28:36 - まうる@まるるん

2022-09-30 04:29:01 - 織田霧さくら

2022-09-23 19:01:29 - まるるん

2022-06-16 21:06:34 - 山本


■ファイル抽出■

■ワード検索■

堕天使の煉獄

https://rengoku.sakura.ne.jp
管理人

織田霧さくら(oda-x)

E-mail (■を@に)

oda-x■rengoku.sakura.ne.jp

堕天使の煉獄バナー 堕天使の煉獄バナー