本文整理汇总了C++中CsvReader::NextLine方法的典型用法代码示例。如果您正苦于以下问题:C++ CsvReader::NextLine方法的具体用法?C++ CsvReader::NextLine怎么用?C++ CsvReader::NextLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CsvReader
的用法示例。
在下文中一共展示了CsvReader::NextLine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadDataFromCsv
bool Data_EnemyDraw::LoadDataFromCsv(){
// リストの解放
drawList.Release();
// Csvを読み込むクラス
CsvReader reader;
// ファイル名を保持する
TCHAR fileName[MAX_PATH];
// グループの内容を一時的に保持する変数
Data_EnemyDraw_Data tmpDraw;
strcpy_s(fileName, MAX_PATH-1, CSVFILE_ENEMYDRAW);
if(reader.Open(fileName)){
// ダミー行
reader.NextLine();
// csvファイルを読み込んでグループに格納する
for(int n=0; n<MAX_ENEMYDRAWFILE; n++){
tmpDraw = DATA_ENEMYDRAW_DATA();
// レファレンス用IDを取得する
if(reader.Read() == CSV_READ_NOERROR){
if(reader.GetIntValue(1, 0) == 0){
continue;
}
tmpDraw.refID = (WORD)reader.GetIntValue(1, 0);
// 画像サイズを取得
tmpDraw.iWidth = reader.GetIntValue(2, 1);
tmpDraw.iHeight = reader.GetIntValue(3, 1);
// 描画基準位置を取得
tmpDraw.cx = reader.GetFloatValue(4, 0);
tmpDraw.cy = reader.GetFloatValue(5, 0);
// 拡大倍率を取得
tmpDraw.baseExRate = reader.GetFloatValue(6, 1.0);
// 取得したグループをデータベースにセットする
drawList.AddData(tmpDraw);
}
}
}else{
return false;
}
// 画像ハンドルの結びつけは毎回手動で行う必要がある
DATA_ENEMYDRAW_DATA* pData;
for(int n=0; n<drawList.GetSize(); n++){
pData = drawList.GetPointerByIndex(n);
for(int i=0; i<DOLL_ATTR_NUM; i++){
pData->hImg[i] = GetImgHandleByRefID(pData->refID, i);
}
}
return true;
}
示例2: LoadDataFromCsv
bool Data_EnemyParam::LoadDataFromCsv(){
// リストの解放
enemyList.Release();
// Csvを読み込むクラス
CsvReader reader;
// ファイル名を保持する
TCHAR fileName[MAX_PATH];
// グループの内容を一時的に保持する変数
Data_EnemyParam_Each tmpEnemy;
// ファイルが存在しない場合が何度か続いたらループを抜ける
int nEmptyFile = 0;
// 何番目の敵インデックスまで埋まっているか
int index = 0;
int actionIndex = 0;
for(int n=1; n<=MAX_ENEMYPARAMFILE; n++){
sprintf_s(fileName, MAX_PATH-1, CSVFILE_ENEMYPARAM, n);
// csvファイルを読み込んでグループに格納する
if(reader.Open(fileName)){
tmpEnemy = Data_EnemyParam_Each();
nEmptyFile = 0; // 空ファイル数のリセット
index = 0;
// ダミー行
reader.NextLine();
// レファレンス用IDを取得する
if(reader.Read() == CSV_READ_NOERROR){
if(reader.GetIntValue(0, 0) == 0){
continue;
}
tmpEnemy.data.refID = (WORD)reader.GetIntValue(0, 0);
}
// ダミー行
reader.NextLine();
// 敵の名前と属性と経験値を取得する
if(reader.Read() == CSV_READ_NOERROR){
// バッファに直接値を入れる
reader.GetValue(0, tmpEnemy.data.name, BATTLEUNIT_NAME_BYTES-1);
// 属性を読み取る
tmpEnemy.data.attr = (BYTE)reader.GetIntValue(1, DOLL_ATTR_NONE);
// 経験値を読み取る
tmpEnemy.data.exp = (DWORD)reader.GetIntValue(2, 0);
// レベルを読み取る
tmpEnemy.data.level = (WORD)reader.GetIntValue(3, 1);
}
// ダミー行
reader.NextLine();
// 敵の各パラメータを取得する
reader.Read();
for(int i=0; i<NUM_ENEMYPARAM_DATA; i++){
tmpEnemy.data.param[i] = reader.GetIntValue(i, 0);
}
reader.NextLine();
// ステートの配列を取得する
for(int i=0; i<MAX_INITIALSTATE; i++){
reader.Read();
tmpEnemy.SetInitialState(
i,
reader.GetIntValue(0, 0),
reader.GetIntValue(1, 0),
reader.GetIntValue(2, 0));
}
reader.NextLine();
// 敵の攻撃パターンを取得する
for(int i=0; i<MAX_ACTIONPATTERN; i++){
// 各行動は三行に分けて記述する。
// 一行目:攻撃パターン名、スキルID、ターゲットのタイプ、優先度
// 二行目、三行目:条件、条件に関するパラメータ(3つ)
reader.Read();
// 一行目
tmpEnemy.SetActionPattern(i, 0,
(DWORD)reader.GetIntValue(0, 0));
tmpEnemy.SetActionPattern(i, 1,
(BYTE)reader.GetIntValue(1, 0));
tmpEnemy.SetActionPattern(i, 2,
(WORD)reader.GetIntValue(2, 0));
// 二行目、三行目
for(int j=0; j<MAX_CONDITION; j++){
reader.Read();
tmpEnemy.SetActConditionPattern(
i, j, reader.GetIntValue(0, 0));
for(int k=0; k<MAX_CONDITIONPARAM; k++){
tmpEnemy.SetActConditionParam(
i, j, k, reader.GetIntValue(1+k, 0));
}
}
// ダミー行
reader.NextLine();
}
// 取得したグループをデータベースにセットする
enemyList.AddData(tmpEnemy);
}else{
nEmptyFile++;
if(nEmptyFile > 100){
// 空ファイルが続いた場合、ループを抜ける
break;
}
}
}
return true;
}