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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0511
T.T『ー』で謎の現象が起こります!6解決


T.T

リンク

2014/5/11(Sun) 14:29:44|NO.61952

T-EG-Scriptを作っていたら怪現象が起こりました。
http://yahoo.jp/box/3uU-Ai

TEG2では制御文字を[/]や[msg]のように記述します。

1,ーを入力すると、独自エラーで制御文字が不正と叩かれる
2,上が発生するのは以下の通り
*[で始まり]で終わらない。
*いきなり]
*[**]**が不正な制御文字。

3,title ー みたいにすると発生。
4,ーが[か]に勘違いしてる?

おそらくstrmidで1Byteずつ取り込む際にーの半分が[の
文字ーコードと一致したのではないかと思うのですがそんなことありえるのでしょうか?

飼い犬に手を噛まれるとは僕のことかも...



この記事に返信する


FunnyMaker

リンク

2014/5/11(Sun) 14:55:31|NO.61953

>おそらくstrmidで1Byteずつ取り込む際にーの半分が[の文字ーコードと一致したのではないかと思うのですがそんなことありえるのでしょうか?

おそらくその通りですね。strmidにやられてます。
↓見てくだされば分かると思います。


buf1 = "ー" buf2 = "[" buf3 = "]" mes "ー : "+peek(buf1,0)+","+peek(buf1(1))+"" mes "[ : "+'['+"" mes "] : "+']'+"" buf1’ = strmid(buf1,0,1) mes "strmid(\"ー\",0,1) : "+peek(buf1’)+"" buf1’’ = strmid(buf1,1,1) mes "strmid(\"ー\",1,1) : "+peek(buf1’’)+""

どうしてこのようになってしまうのか私にはわかりませんが、応急処置として文字列(というよりそれに対応する数値)を
strmidではなくpeek等で取り出すようにすればどうでしょうか?



T.T

リンク

2014/5/11(Sun) 15:08:02|NO.61954

>FunnyMaker
やはりそうでしたか...
strmid関数大好きなんですけどふられたようです。
ーの先頭文字の124は一体何なでしょう?
strmidを変更すると1から作りなおしなりそうなので...
(↑完成後のサンプル作成時に発覚w)
文字コードが124の次の91([)を無視するという仕様に変更したいのですが...

もう少し待ってみます。



T.T

リンク

2014/5/11(Sun) 15:13:18|NO.61955


間違いました。124ではなく129です。
現在アスキーコード表を漁ってます。



T.T

リンク

2014/5/11(Sun) 15:33:15|NO.61956

無事解決しました。
1,文字コードが129だったらフラグを立てる。
2,フラグがONの時は[のチェックを行わない。
3,フラグを立てた次のループが終わったらフラグをOFF。
で動きました。
アスキーコード129はなし(127まで)なのでご認識の問題もなさそうです。
(変換ツールによっては"|"となりますがHSPでは|は124です。)

ご回答有難うございました!

本当に『ゲーム』も色んな意味で作れないからね...(ゲ"ー"ム)
strmidは2Byte文字も半分にして切り出すので気を付けないと...



みけ

リンク

2014/5/11(Sun) 16:01:10|NO.61958

文字コードに由来するもので、結構有名な問題です

WindowsだとShift-JISで文字を扱うことが多いのですが、Shift-JISでは2バイトで日本語を表現します
その際ASCIIコードで既定されていないコードを1バイト目にすることでASCIIコードと共存させているのですが、2バイト目はASCIIコードと重複しているため質問者さんの仰るような問題が起こります

簡単な説明はWiki: http://ja.wikipedia.org/wiki/Shift_JIS とかを

Shift-JISのリーディングバイト(2バイト文字であること表す1バイト目)は129以外にもいくつかありますので、より安定した処理系を作りたいならそれらにも対応する必要があるでしょう
気になる場合は調べてみてください、他の言語の処理系(Luaなど)でも同様の問題はありますので答えを見つけるのはそんなに難しくないと思いますよ



GENKI

リンク

2014/5/17(Sat) 02:34:03|NO.62039

もう解決しているようですが、過去ログとしての活用のため資料を補足。
最近はHSP開発wiki が検索に引っかかりにくくなっていて情報が見つけにくくなっています。

ダメ文字一覧表
https://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp/table

HSP開発wiki String/改行
http://hspwiki.hinekure.net/String%EF%BC%8F%E6%94%B9%E8%A1%8C.html
2バイト文字判定など。



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