//chara[0] = charaData; /* * charaData[x]+=loadData(Abl,x) * or * * for i=0,i<99;i++ * ReadLineで一列ずつ読む * token[0][1][2] -> [能力,親密,1 or ABL,0,1] * switch token[0] * case "TALENT": * case "素質": * a=token[1] * if ToInt(a) != -1 ? * talent[a]=token[2] * else * a=ToIntTalent(a) * talent[a]=token[2] * * token[2]-> * */ //variablsesize.csvを読み込む private void loadVariableSizeData(string csvpath) { //ファイルが無い場合、デフォルト値を設定 if (!File.Exists(csvpath)) return; EraStreamReader eReader = new EraStreamReader(); if (!eReader.Open(csvpath)) { return; } try { StringStream st = null; while ((st = eReader.ReadEnabledLine()) != null) { //position=scriptposition //changeVariableSizeData } } catch { System.Media.SystemSounds.Hand.Play(); return; //予期しないエラーが発生しました } finally { eReader.Close(); } /* * isOpen * * while readline * * サイズ調整 */ /* * chara型配列を宣言 Chara[] * chara.toCharacterData(Chara chara, string tokens[]) */ }
// private void loadDataTo(string csvPath, int targetIndex, Int64[] targetI) { if (!File.Exists(csvPath)) return; //配列のサイズを宣言 string[] target = names[targetIndex]; EraStreamReader eReader = new EraStreamReader(); if (!eReader.Open(csvPath)) { //オープンに失敗しました } try { StringStream st = null; while ((st = eReader.ReadEnabledLine()) != null) { string[] tokens = st.Substring().Split(','); if (tokens.Length < 2) { //,が必要です continue; } int index = 0; if (!Int32.TryParse(tokens[0], out index)) { //一つ目の値を整数値に変換できません continue; } if ((index < 0) || (target.Length <= index)) { //配列の範囲外です continue; } target[index] = tokens[1]; } } catch { System.Media.SystemSounds.Hand.Play(); //予期しないエラーが発生しました } finally { eReader.Close(); } }
//variablsesize.csvを読み込む private void loadVariableSizeData(string filepath) { string str = "";//一時的に使う変数 //ファイルが無い場合、デフォルト値を設定 if (!File.Exists(filepath)) return; EraStreamReader eReader = new EraStreamReader(mf); if (!eReader.Open(filepath)) { //-1が返ったらデフォルト値をセットして終了 setDefaultArrayLength(); return; } try { string[] array = new string[] { }; int o; while (true) { str = eReader.ReadLine();//一行読み込み文字取得 if (eReader.EOF() != true)//読み込めた { string[] vtoken = str.Split(','); try { int.TryParse(vtoken[1], out o);//配列の二番目を数字に変換できるか switch (vtoken[0]) { case "BASENAME": case "BASE": if (o > MaxDataList[(int)CIntData.BASE]) MaxDataList[(int)CIntData.BASE] = o; break; case "TALENTNAME": case "TALENT": if (o > MaxDataList[(int)CIntData.TALENT]) MaxDataList[(int)CIntData.TALENT] = o; break; case "EXPNAME": case "EXP": if (o > MaxDataList[(int)CIntData.EXP]) MaxDataList[(int)CIntData.EXP] = o; //mf.WriteLabel("。。" + vtoken[0] + " = " + MaxDataList[(int)CIntData.EXP] + "。。"); break; case "ABLNAME": case "ABL": if (o > MaxDataList[(int)CIntData.ABL]) MaxDataList[(int)CIntData.ABL] = o; break; case "CFLAGNAME": case "CFLAG": if (o > MaxDataList[(int)CIntData.CFLAG]) MaxDataList[(int)CIntData.CFLAG] = o; break; case "EQUIPNAME": case "EQUIP": if (o > MaxDataList[(int)CIntData.EQUIP]) MaxDataList[(int)CIntData.EQUIP] = o; break; case "PALAMNAME": case "PALAM": if (o > MaxDataList[(int)CIntData.PALAM]) MaxDataList[(int)CIntData.PALAM] = o; break; case "MARKNAME": case "MARK": if (o > MaxDataList[(int)CIntData.MARK]) MaxDataList[(int)CIntData.MARK] = o; break; case "TRAINNAME": case "TRAIN": if (o > MaxDataList[(int)CIntData.TRAIN]) MaxDataList[(int)CIntData.TRAIN] = o; break; case "ITEMNAME": case "ITEM": if (o > MaxDataList[(int)CIntData.ITEM]) MaxDataList[(int)CIntData.ITEM] = o; break; case "SOURCENAME": case "SOURCE": if (o > MaxDataList[(int)CIntData.SOURCE]) MaxDataList[(int)CIntData.SOURCE] = o; break; default: break; } } catch { tmp++; } } else { eReader.Close();//末尾に達した break; } } } catch { System.Media.SystemSounds.Hand.Play(); //予期しないエラーが発生しました } finally { //for (int i = 0; i < 10; i++) //{ //mf.WriteLabel("MAXDATALIST[" + i + "] = " + MaxDataList[i] + " \n"); //} eReader.Close(); } }
//GameBase.ERBを読み込む private void loadGameBaseData(string filepath) { string str = "";//一時的に使う変数 //ファイルが無い場合、デフォルト値を設定 if (!File.Exists(filepath)) return; EraStreamReader eReader = new EraStreamReader(mf); if (!eReader.Open(filepath)) { //-1が返ったら終了 return; } try { while (true) { str = eReader.ReadLine(); if (!eReader.EOF()) { string[] vtoken = str.Split(','); switch (vtoken[0]) { case "バージョン": gbData.version = vtoken[1]; break; case "タイトル": gbData.title = vtoken[1]; break; case "作者": gbData.author = vtoken[1]; break; case "製作年": gbData.year = vtoken[1]; break; case "追加情報": gbData.apendinfo = vtoken[1]; break; case "バージョン違い認める": gbData.defver = vtoken[1]; break; case "コード": gbData.code = vtoken[1]; break; default: break; } } else { eReader.Close(); break; } } } catch { //不明なエラー } }
//データ読みこみ private void loadDataTo(string csvPath, int targetIndex, Int64[] targetI) { if (!File.Exists(csvPath)) return; //配列のサイズを宣言 string[] target = new string[MaxDataList[targetIndex]]; EraStreamReader eReader = new EraStreamReader(mf); if (!eReader.Open(csvPath)) { //オープンに失敗しました return; } try { while (true) { string str = eReader.ReadLine(); string[] tokens = str.Split(','); if (!eReader.EOF() == true) { try { if (tokens.Length < 2) { //,が必要です continue; } int index = 0; if (!Int32.TryParse(tokens[0], out index)) { //一つ目の値を整数値に変換できません continue; } if ((index < 0) || (target.Length <= index)) { //配列の範囲外です continue; } target[index] = tokens[1]; //二度手間…… ParamNameList[targetIndex][index] = target[index]; } catch { } } else { eReader.Close(); break; } } } catch { System.Media.SystemSounds.Hand.Play(); //予期しないエラーが発生しました } finally { eReader.Close(); } }
//自分用 //プログラムにプログラムを書かせる //filepath1 html filepath2 txt public void WriteProgram(string filepath1, string filepath2) { string str = ""; if (!File.Exists(filepath1)) return; EraStreamReader eReader = new EraStreamReader(mf); EraStreamWriter eWriter = new EraStreamWriter(mf); eWriter.MakeFile(filepath2); if (!eReader.Open(filepath1)) { //-1が返ったら終了 return; } try { while (true) { str = eReader.ReadLine(); if (!eReader.EOF()) { //空文字で無ければ出力 if (str != "" && str != "\n" && str != null) { eWriter.WriteLine("eWriter.WriteLine(\"" + str + "\");"); } } else { break; } } eReader.Close(); eWriter.Close(); } catch { eReader.Close(); eWriter.Close(); } }