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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0716
名無しの権兵衛ファイルのパスの取得方法3未解決


名無しの権兵衛

リンク

2020/7/16(Thu) 16:11:38|NO.91002

ノートアプリを開発していますが、ファイル選択ダイアログが表示され、
ファイルを選択後、編集、上書き保存といった感じにしたいのですが、
ファイルのパスを取得し、取得できない場合は、名前をつけて保存、
あれば、パスの場所に上書き保存としたいのですが、HDLでは、参考に
なるコードが見つかりません。
ソースコードを交えて教えてください。



この記事に返信する


とあるプログラマ

リンク

2020/7/16(Thu) 17:35:19|NO.91003

詳細はコード中に書いてありますが、パスが取得できているかいないかはパスを変数に保存しておけば分かります。
簡単に言えば変数が空であれば未取得で中身があればそれがパスだと判断すればいいです。

パスの先のファイルが存在するか否かについてであればexist命令で分かります。


screen 0 sdim path, 256 // ファイルパス用 sdim text // 内容用 objsize 100, 25 // 開くボタン pos 0, 0 button gosub "開く", *open // 閉じるボタン pos 100, 0 button gosub "保存", *save // エディットボックス pos 0, 25 mesbox text, ginfo_winx, ginfo_winy - 25, 1 | 4 | 8, 0 id_mesbox = stat // objprmで使うためオブジェクトIDを取得 stop *open dialog "txt", 16, "テキストファイル" if (stat == 0) : return // キャンセル path = refstr // 開く・保存ダイアログの結果(パス)はrefstrに格納される exist path sdim text, strsize // existで取得したファイルサイズ(strsize)でtext変数のバッファを確保 notesel text noteload path objprm id_mesbox, text noteunsel title "開きました: [" + path + "]" return *save if (path == "") { dialog "txt", 17, "テキストファイル" if (stat == 0) : return // キャンセル path = refstr } notesel text notesave path noteunsel title "保存しました: [" + path + "]" return



名無しの権兵衛

リンク

2020/7/21(Tue) 17:21:43|NO.91057

返事が遅れてすみません。
スクリプトを実行した後、正常に行えました。
追加質問ですみません。
①印刷プレビューを使って印刷処理を行うスクリプト(ソフト含む)
②たての区切り線のスクリプト
この二つについてよろしくお願いします。



とあるプログラマ

リンク

2020/7/22(Wed) 13:34:52|NO.91063

>>①印刷プレビューを使って印刷処理を行うスクリプト(ソフト含む)
HSPで印刷をやったことが無いので私には分かりかねます。申し訳ありません。


>>②たての区切り線のスクリプト
どういうことなのかよく分かりませんが、画面に線を引くということなのであれば

color 255, 0, 0 line 50, 0, 50, ginfo_winy
このようにline命令でできます。

エディットボックスに垂直罫線(折り返し線)のようなものを付けるのであれば、コントロールをサブクラス化してWM_PAINT時に追加で線を引くとかでしょうか。
こちらも私はやったことがないので詳細は分かりかねます。

お力になれずに申し訳ありません。



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