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さん、助言ありがとうございます。



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