スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

新年あけましておめでとうございます。

今更ですが、新年明けましておめでとうございます!
今年もよろしくお願いします!


【雑談】一ヶ月以上経ったのか・・・。
 の続きの記事となります。

前回・・・と言っても約二年前の記事になるんですが、Excel VBA を用いて
ある範囲のセルデータをテキストデータで出力し、プログラム側で読み取ったデータをコンソールアウトする。
と言うのが前回の流れでした。
この時のメインは Excel VBA でしたが、本日の更新分は C++ 側となります。
ソースは面倒なので割愛してます。


Excel からテキストデータを書き出したものがこれになります。
Excelの出力データ

一行目、二行目:セルの列数・行数
プログラム側ではこれを頼りにループ処理をしてます。

やることは単純で、形式は CSV となるので、 "," か "\0"(改行) が来るまでデータを読み込むのみです。
メイン関数はこんな感じになってます。



int main()
{
CDataTable wDataTable("./01EnemyInfo.txt");

std::string name1 = wDataTable["Enemy05"]["imageEnemy"];
std::string name2 = wDataTable["Enemy01"]["y"];
std::string name3 = wDataTable["Enemy10"]["apperFrame"];

std::cout<< name1.c_str()<< std::endl;
std::cout<< name2.c_str()<< std::endl;
std::cout<< name3.c_str()<< std::endl;

return 0;
}



コンストラクタにファイル名を渡すと、その中でファイルの読み込みをしてくれます。
クラス内で、std::map や [ ] 演算子のオーバーロードを使っていて、["ID"]["読み出したい項目名"] とすることで
その文字列をキーに値が検索されて返ってくる感じになってます。

実行結果はこんな感じです。
出力画面

文字列、数値に対応できたため、後は外部からの情報を流し込むだけになりました。
ここまでくれば敵を表示できるところまであと僅かというところまで来た気がします。

作りをどうするかで悩んでましたが、これで敵だけでなく色々なデータを読み込むのもやりやすくなった気がします。
std::map の使い方が個人的にわかり辛かったので、もうちょっと勉強したほうがいいかもしれないですね・・・。

何はともあれ、Excel からデータを書き出すマクロ、データを読み込むためのクラスの二つが完成しました。

この記事へのコメント

トラックバック

URL :

検索フォーム
プロフィール

DVDM

Author:DVDM
自作ゲームの開発過程ブログ。
赤髪愛なら誰にも負けない。

 
Pixiv バナー


ブロとも申請フォーム
最新記事
カテゴリ
最新コメント
最新トラックバック
RSSリンクの表示
リンク
ブロとも一覧
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。