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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0923
南山太郎ファイルへの入出力5解決


南山太郎

リンク

2020/9/23(Wed) 01:12:21|NO.91430

連珠(五目並べ)のプログラムを作っています。棋譜の保存をしたいのですが、C言語のfprintf
関数みたいなものはないでしょうか?ヘルプを見てnotesaveとbsaveとやらを見つけたのですが、
使い方が今1つ分かりません。


dim g_RECORD(128,2) ; ; ; bsave "test.txt",g_RECORD(128,2)



この記事に返信する


南山太郎

リンク

2020/9/23(Wed) 01:42:34|NO.91431

追記
バイナリファイルではなく、テキストファイルとして保存したいです。

google検索で色々調べたのですが、やはり分かりません。
どうか、よろしくお願いします。



あらや

リンク

2020/9/23(Wed) 02:44:38|NO.91432

配列の使い方が少し間違っています。


dim g_RECORD, 128, 2 ; ; ; bsave "test.txt",g_RECORD

このように書くとg_RECORDの内容が全てtest.txtに『バイナリとして』保存されるかと。

バイナリではなく文字列として保存する場合は
C言語でいうsprintfに近いstrfを使うか、文字列操作を行なって
変数に保存してからbsaveを行なえば良いかと思います。


dim g_RECORD, 128, 2 ; ; ; g_RECORD_str = ""+g_RECORD(0, 0)+""; // 文字列型変数に数値を文字として代入していく g_RECORD_str += ""+g_RECORD(1, 0)+""; // 文字を後ろに追加していく ; ; ; bsave "test.txt",g_RECORD_str

文字列型変数に代入していく処理は、
forループやrepeatループを使うのが楽です。

Cに慣れているのでしたらforループでstrfを使い文字列型変数へ代入していく
という形の方がやりやすいかもしれません。

forの使い方はCと少し違う所がありますので
HSPスクリプトエディタでF1キーを押して確認してください。



南山太郎

リンク

2020/9/23(Wed) 06:51:15|NO.91433

ありがとうございました!



kanamaru

リンク

2020/9/23(Wed) 07:30:47|NO.91434

解決しているようですが、fprintfは無いですが、
C言語でいうsprintfに近いstrf関数があるので、
書式指定使いたければstrf使った後保存するといいと思います。
多分書式指定の方法は同じだろうし。
使いかたはsprintfと違うのでF1で使い方は確認してください。



南山太郎

リンク

2020/9/24(Thu) 19:43:53|NO.91441

kanamaruさん、助言ありがとうございます。



記事削除

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

NO.91430への返信

マスコット

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

名前

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

削除用パスワード

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

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

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