HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2025
1002
アスキーコードでの指定の仕方がなかなか分からなかったので8解決


リンク

2025/10/2(Thu) 23:52:38|NO.104058

題名通りですが、コントロールコードを検索対象にしたくて、色々調べまくって

文字変数s = strf("%c",0x0a) ; 0x0a = LF(改行コード)

みたいに指定すればいいと自己解決はしたのですが、
これを突き止めるのに2日を費やしました…。
もともとアセンブラ畑の自分としてはキャラクターコードはとても馴染み深いもので、
すぐに情報見つかるだろうと思ってたのですが、苦戦したので一応忘備録的に書いておこうかと。
ちょっと疑問なんですが、皆さんあまりアスキーコード使われないのですかね?
TABとか指定したい場合結構あると思うのですが…。



この記事に返信する


GENKI

リンク

2025/10/3(Fri) 00:22:41|NO.104059

HSP3の文字列処理で込み入ったことをやろうとすると、アスキーコードに触れることがあります。でも最近は正規表現でだいたい何とかなるのかな?
にしても%c…気が付かなかった。こんなのあるんだ。peek/pokeとか使ってました。何度も見たはずなんだけど気づかないものですね。
http://lhsp.s206.xrea.com/command/strf.html



正蔵

リンク

2025/10/3(Fri) 21:41:51|NO.104060

タブはエスケープシーケンスの\tで、LFは\nのCRLFから\rのCRを消すことでも得られます


t = "\t" r = "\r" n = "\n" lf = "\n" strrep lf,"\r","" mes strf("\\n 0x %02x %02x", peek(n), peek(n, 1)) mes strf("\\t 0x %02x %02x", peek(t), peek(t, 1)) mes strf("\\r 0x %02x %02x", peek(r), peek(r, 1)) mes strf("LF 0x %02x %02x", peek(lf), peek(lf, 1)) string = "a"+LF+"b" mes strf("\"a\"+LF+\"b\" 0x %02x %02x %02x", peek(string), peek(string,1), peek(string,2))



窓月らら

リンク

2025/10/3(Fri) 21:52:29|NO.104061

キャラクターコード使います(世代による?)
CRLFであればこうするだけですがね・・・

s="あいうえお\n" mes instr(s,0,"\n")



窓月らら

リンク

2025/10/3(Fri) 21:55:16|NO.104062

ちなみにHSP3の場合

mes 'a'

こうするとアスキーコードに変換ができます。



リンク

2025/10/3(Fri) 22:17:53|NO.104063

皆様レスありがとうございます。
私が今回得たかったのはCRがないLFだったのでエスケープシーケンスだと指定できなかったのですよ…。
(ないですよね?)
それにしても、かなりの質問に答えられてるGENKIさんでも知らなかったとか
アスキーコードHSPで指定するのマイナーだったのですね…。
どうりでネットで情報探すの苦労したわけです。



窓月らら

リンク

2025/10/3(Fri) 22:46:52|NO.104064

バイナリ検索があればなーと思ったことはありますね。
順次読出しでいい内容ならpeekでやってしまいますがね・・・



GENKI

リンク

2025/10/3(Fri) 22:52:01|NO.104065

\rっていつ使ったらいいんでしょうね。未だにわかりません。
的確な情報が集約されてる良スレなので、検索でここを訪れた人のために資料の場所についても補足しておきます。

プログラミング・マニュアル
https://www.onionsoft.net/hsp/v37/doclib/hspprog.htm#STRING

---

ところで制御文字について少し気になったので調べてみたのですが、いっぱいあるんですね。30以上ある。
https://www3.nit.ac.jp/~tamura/ex2/ascii.html
何かに有効利用できないものか…mesで出力すると文字化けとして表示されちゃうし無理か。



GENKI

リンク

2025/10/3(Fri) 22:55:37|NO.104066

あ。知らなかったのは%cのとこであって、エスケープシーケンスは普段から使っています。
なぜか最後の1行を読み飛ばしてしまっていたので、的外れなレスを付けてしまってました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.104058への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2025(c) All rights reserved.