• 異世界ファンタジー
  • 現代ファンタジー

AIのアドバイスもだんだん使えるようになってきた。創作以外で。

🖊ふるーい情報端末IBM WorkPad c3というPDAをいじっています。

日曜プログラマーになって役に立たないアプリを製作しているのですが、問題発生。

palm OSのバージョンが3.5になったばかりの機種に向けて、古いバージョンのNS Basic for Palmを使ってアプリを作る状態になっている。

このNS Basicは英語サイトから引っ張ってきた奴なので、日本語対応できていない。それでも何とか使えないことはないのだが……。

文字列操作関数で引っかかった。日本語(2バイト文字)の文字数をカウントできない!

🖊文字数カウント関数Len()は1バイトコードを対象に作られていて、日本語1文字を「2」と(バイト長を)返してくる。

これに基づき、Right()、Mid()、Left()など部分文字列取得関数もバイト長でしか指定できない。

この状態だと、英数など1バイト文字と2バイト文字が混在した状態では期待する動作にならないのだ。

🖊「何とかしてよ~! ドラえもーん!」

ということで、Geminiさんに聞いてみた。
OSや言語のバージョンがあやふやで、最初は間違った情報を返してきたが、「いやいや、そうじゃなくて。こういう状態なので、こうしたい」ということを追加でお話したら、使える答えが返ってきた。

もちろん(?)、完全に正確ではなくて、プログラム例に使われている関数等の表現や16進数の表現など、そのまま使えない部分も多いが、アルゴリズムや文字コードのデータなど、大事な部分は利用できるものだった。

正しい文法に置き換えて組み込んでみると、確かに2バイト文字混在文字列の「文字数カウント」を取ることができた。

これをLens()関数として、その応用でLefts()関数をコーディング。
この2つがあれば、Mids()とRights()は簡単に書ける。

🖊「パイプ・コーディング」(AIにプログラミングを丸投げして、人間はパイプを吹かす)とまではいかないが、火おこしにチャッカマンを使うくらいには便利になった。

2026年はさらに飛躍的にAIが進化することでしょう。

コメント

コメントの投稿にはユーザー登録(無料)が必要です。もしくは、ログイン
投稿する