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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0212
ささみdialog命令で取得したデータ内の円記号を置換する方法2解決


ささみ

リンク

2012/2/12(Sun) 02:12:03|NO.44804

ソフトのセーブデータをバックアップしたいのです。
dialog命令で取得したデータのパスを変数に保存した後、
変数をbcopyに通してファイルをコピーしたいです。
エスケープを二重にすれば変数を指定しても動くということまでは分かったのですが置換方法が分かりません。
変数内の円記号(エスケープ文字)をbcopyに適した形に置換する方法を教えてください。
\→\\に置換したいのです。
よろしくおねがいします。


button gosub "ロード", *ボタン1 button gosub "保存", *ボタン2 stop *ボタン1 dialog "",16,"テキストファイル" dialog "STAT="+stat+"\nNAME="+refstr,0,"結果" ロードパス=refstr カレントパス=dirinfo(1) mes "ロードパス"+ロードパス mes "カレントパス"+カレントパス return *ボタン2 カレントパス=dirinfo(1) ;この部分で、ロードパスとカレントパスの変数内の"\"を"\\"に変換したい bcopy ロードパス,カレントパス return



この記事に返信する


暇人

リンク

2012/2/12(Sun) 03:01:19|NO.44805

"\\"が必要なのはHSPコンパイラを通す場合
スクリプト内に書き込んでる文字列のみ

NO.44804のは単にカレントパスにはファイル名が含まれてないからコピーできないだけ
ファイル名が決まってるなら

カレントパス+"\\ファイル名.拡張子"

ファイルを開くダイアログからなら

*ボタン1 dialog "",16,"テキストファイル" dialog "STAT="+stat+"\nNAME="+refstr,0,"結果" ロードパス=refstr カレントパス=dirinfo(1) index=0 repeat getstr ファイル名,ロードパス,index,'\\' //"\"の文字コード区切りで取り出す if stat=0 {break} //区切り文字が終端文字(0)だったら取り出し終了 index+strsize loop カレントパス+"\\"+ファイル名 mes "ロードパス"+ロードパス mes "カレントパス"+カレントパス return



ささみ

リンク

2012/2/12(Sun) 03:18:33|NO.44806

おぉっ、ありがとうございます。
まさかファイル名が含まれていなかったとは、うっかりしておりました。
解決しました。



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