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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0731
serena質問です!13解決


serena

リンク

2008/7/31(Thu) 15:30:33|NO.17779

そういえば、こんなプログラムって、HSPでできますか??

もし、俺様という文字をにゅうりょくBOXにうちこんで、実行というボタンを押したら・・・
僕と、べつのにゅうりょくBOXに表示されるようなプログラムってどう作ればいいのでしょうか?

教えてください。



この記事に返信する


s

リンク

2008/7/31(Thu) 15:59:36|NO.17780

>僕と、べつのにゅうりょくBOXに表示されるようなプログラム
ちょっとここが曖昧です・・
どのようなことでしょうか?



エレキ掃除機

リンク

2008/7/31(Thu) 16:32:27|NO.17781

つまりは、
「俺様」という文字列をmesboxに書き込み、
「実行」というbuttonを押したら、 別のmesboxに「僕」と表示したい。
といっているのかと思われます、

すいません。本題を忘れてしまいました。

objprmとmesboxとbuttonの組み合わせで出来ます。
以上。



axobj

リンク

2008/7/31(Thu) 17:35:33|NO.17782

利用規約は読みましたか?
タイトルは、質問の内容が分かるように書きましょう。



serena

リンク

2008/7/31(Thu) 18:54:34|NO.17783

すいません・・・・国語力なくて・・・
私が言いたかったのは・・
エレキ掃除機さんが言ったように・・
「俺様」という文字列をmesboxに書き込み、
「実行」というbuttonを押したら、
別のmesboxに「僕」と表示したい。
ということです。
プログラムを教えてください・・・・



GENKI

リンク

2008/7/31(Thu) 19:11:05|NO.17784

> すいません・・・・国語力なくて・・・

投稿前に、これでいいかな?と読み返すといいかもしれません。
まあ国語力は人のこと言えませんが…。orz日々精進…


> objprmとmesboxとbuttonの組み合わせで出来ます。

これについては考えてみましたか?
どこまで出来るようになって、どこが分からないのか、
具体的に教えていただければ助言しやすくなります。



serena

リンク

2008/7/31(Thu) 19:34:57|NO.17786

> objprmとmesboxとbuttonの組み合わせで出来ます。

のどのように組み合わせたらいいのかがわかりません・・・・
どのようなスプリクトになるのでしょうか?



SYAM

リンク

2008/7/31(Thu) 19:47:33|NO.17787

mesbox で入力ボックスを2つ作り、
button でボタンを作り、
ボタンのジャンプ先で
片方の入力ボックスの内容が『俺様』ならもう片方の内容をobjprmで『僕』に更新

……です。
やってみてください。
試してダメなら試したときのスクリプトを出してまた質問してみてください。

万が一。
万が一、自分で試しもしないで質問しているようであれば、回答は
『あなたには無理』
……にしときます。



serena

リンク

2008/7/31(Thu) 19:54:32|NO.17788

ありがとうございます。
やり方がよくわかりました!!



inovia

リンク

2008/7/31(Thu) 19:55:55|NO.17789

長いけどこんなのは?
HSP開発Wikiから引っ張ってきました。


// 置換モジュール (HSP開発Wiki) 2007/06/05 ver1.3 #module modReplace #const FIRST_SIZE 64000 // はじめに確保するsResultの長さ #const EXPAND_SIZE 32000 // memexpand命令で拡張する長さの単位 // メモリ再確保の判断及び実行のための命令(モジュール内部で使用) #deffunc _expand var sTarget, var iNowSize, int iIndex, int iPlusSize if (iNowSize <= iIndex + iPlusSize) { iNowSize += EXPAND_SIZE * (1 + iPlusSize / EXPAND_SIZE) memexpand sTarget, iNowSize } return // 文字列内の対象文字列全てを置換する命令 #deffunc replace var sTarget, str sBefore, str sAfter, local sResult, local iIndex, local iIns, \ local iStat, local iTargetLen, local iAfterLen, local iBeforeLen, local iNowSize sdim sResult, FIRST_SIZE iTargetLen = strlen(sTarget) iAfterLen = strlen(sAfter) iBeforeLen = strlen(sBefore) iNowSize = FIRST_SIZE iStat = 0 iIndex = 0 repeat iTargetLen // 検索・置換の開始 iIns = instr(sTarget, cnt, sBefore) if (iIns < 0) { // もう見つからないので、まだsResultに追加していない分を追加してbreak _expand sResult, iNowSize, iIndex, iTargetLen - cnt // オーバーフローを避けるため、メモリを再確保 poke sResult, iIndex, strmid(sTarget, cnt, iTargetLen - cnt) iIndex += iTargetLen - cnt break } else { // 見つかったので、置換して続行 _expand sResult, iNowSize, iIndex, iIns + iAfterLen // オーバーフローを避けるため、メモリを再確保 poke sResult, iIndex, strmid(sTarget, cnt, iIns) + sAfter iIndex += iIns + iAfterLen iStat++ continue cnt + iIns + iBeforeLen } loop sdim sTarget, iIndex + 1 memcpy sTarget, sResult, iIndex return iStat // おまけ。置換した個数をシステム変数statに代入。 #global a="俺様はガキ大将!\n俺様はジャイ○ンでぃ!!\n俺様は・・・" b="" chk="俺様"//変換元 cov="僕"//変換後 mesbox a,320,400,1 pos 320,0 mesbox b,320,400,0 button "GO!",*go stop *go replace a, chk, cov objprm 1,a



M

リンク

2008/7/31(Thu) 20:46:10|NO.17792

こんな感じ?

sdim s1,32 ;入力した文字列(とりあえず32文字) sdim s2,32 ;変換された文字列 sdim s3,32 input s1 input s2:objID=stat ;objIDには、オブジェクトIDが入る button gosub "実行",*sChange stop *sChange s3="" if s1="俺様":s3="僕" objprm objID,s3 ;ここがミソ return
mesboxじゃなくてinputを使ってみました。
s2="僕"のようにしなくても、きちんとs2の中身が変わっているのは面白いと思いました。



p

リンク

2008/7/31(Thu) 21:07:52|NO.17793

SYAMさんが、せっかく自分でスクリプト組むように誘導してたのに
そのすぐ後にスクリプト載せちゃ駄目だろ・・・



SYAM

リンク

2008/7/31(Thu) 21:16:45|NO.17794

;-ω-) ま まあ
わかりました! ……って言われてますし、いんじゃないでしょうか。

他になにやら気になるスレッドが立ってますが…。
そちらの参考にもなるやも。



レノス

リンク

2008/7/31(Thu) 23:02:12|NO.17798

> serena さん
inoviaさんやMさんの貼り付けてくれたスクリプトをしっかり読んで、
理解することが大切だと思います。
( #module と #global の間はわけわからんことになってますけど…… )
だれかの名言を引用してみますと、地道が近道、です。



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