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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1021
しゃぷれはにゃよiniファイルの取り扱い7未解決


しゃぷれはにゃよ

リンク

2023/10/21(Sat) 21:55:03|NO.100328

hsp3でiniファイルを読み込む方法を教えてください
リンク切れな古いページしか見つかりませんでした

やりたいこと

variable1="a"

が書かれたファイルを読み込み
dialog variable1
などで使用

(ホントは30個ほど項目があります,クオーテーションとかはなくてもいいです,空白改行は考えなくていいです)



この記事に返信する


TOMATO

リンク

2023/10/21(Sat) 22:03:39|NO.100329

リンクが切れていないことまでは確認済み
https://hsp.tv/play/pforum.php?mode=pastwch&num=39294#39318



窓月らら

リンク

2023/10/22(Sun) 09:05:24|NO.100331

自分のアプリからコードを引っ張ってきました。
私はこんなふうにしてます。

#uselib "kernel32.dll" // 設定ファイル読み書き #func WritePrivateProfileString "WritePrivateProfileStringA" sptr,sptr,sptr,sptr #func GetPrivateProfileString "GetPrivateProfileStringA" sptr,sptr,sptr,sptr,sptr,sptr #define INI_FILE "test.ini" // 設定ファイル名 #define INI_SEC "general" // 設定ファイルのセクション名 filename=dir_cur+"\\"+INI_FILE sdim s // ini書き込み setini filename,"valtest",""+255 setini filename,"strtest","これはテストテキストです。" // ini読み込み v=getini(filename,"valtest",0,0) s=getini(filename,"strtest",0,1) // 結果を表示 mes "v="+v mes "s="+s stop // 設定ファイルから読み出し // getini ファイル名, キー(文字列), デフォルト値, フラグ(0:数値 1:文字列) #defcfunc getini str _s1, str _key, int _p1, int _p2 sdim buf,1024 // 必要な文字列サイズ分確保のこと GetPrivateProfileString INI_SEC, _key, str(_p1), varptr(buf), 1024, _s1 if _p2 { return buf } // 文字列として返す return int(buf) // 整数値として返す // 設定ファイルに書き込み // setini ファイル名, キー(文字列), 値(文字列) #deffunc setini str _s1, str _key, str _s2 WritePrivateProfileString INI_SEC, _key, _s2, _s1 return
読み出しのところの1024とは1024バイト分まで対応するって意味です。
APIの後ろから2番目のパラメータと合わせてください。
ここまでのサイズが必要なければ、必要サイズに縮小して構いません。



窓月らら

リンク

2023/10/22(Sun) 09:16:29|NO.100332

補足。
読み出しのデフォルト値はキーが存在しなかった場合の戻り値に使われます。



しゃぷれはにゃよ

リンク

2023/10/22(Sun) 11:31:40|NO.100333

Tomatoさん、ウィンドウの位置を取得する方のサンプルが動きません...



TOMATO

リンク

2023/10/22(Sun) 12:19:34|NO.100334

>Tomatoさん、ウィンドウの位置を取得する方のサンプルが動きません...

確かに提供モジュールだとサンプルコードが動きませんね。
サンプルコードを直してみましたが、これでどうでしょう?


;#include (上記のモジュール) gsel 0, -1 gosub *LoadConfig // 設定を読み込む // ウィンドウ表示 screen 1, ginfo_dispx, ginfo_dispy, screen_hide title "INIサンプル" width windowSize(0), windowSize(1), windowPos(0), windowPos(1) gsel 1, 1 mes "load: " + dir_cur + "/sample.ini" onexit goto *Exit stop *Exit gosub *SaveConfig // 終了時に保存する end // 読み込み *LoadConfig ini_setpath "./sample.ini" windowPos(0) = ini_geti( "Window", "PosX" ) // 位置 (x, y) windowPos(1) = ini_geti( "Window", "PosY" ) windowSize(0) = ini_geti( "Window", "ClientX", 640 ) // 大きさ (x, y) windowSize(1) = ini_geti( "Window", "ClientY", 480 ) return // 保存 *SaveConfig ini_puti "Window", "ClientX", ginfo_winx ini_puti "Window", "ClientY", ginfo_winy ini_puti "Window", "PosX", ginfo_wx1 ini_puti "Window", "PosY", ginfo_wy1 return



GENKI

リンク

2023/10/22(Sun) 13:23:05|NO.100335

今この話題を扱うなら、この作品について触れないわけにはいかないでしょう。
ini編集モジュール
https://dev.onionsoft.net/seed/info.ax?id=2367


しかし、個人的にお勧めしたいのはこちら。あまり宣伝してませんが、iniの読み書きモジュールが付属しています。
PAD設定さん IniEdit.as
https://mclab.uunyan.com/dl/dl11.htm



nennneko5787

リンク

2023/10/23(Mon) 17:19:07|NO.100344




記事削除

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

NO.100328への返信

マスコット

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

名前

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

削除用パスワード

解決したら質問者本人がここをチェックしてください。

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

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