int numberofframesX = 0;
int numberofframesY = 0;
string framesX = "";
string framesY = "";
string X = "";
string Y = "";
string t = path + "\\" + fileName;
OptionsFile setting_file = new OptionsFile(t);
string XX = setting_file.GetKey("Number Of Frames X");
string YY = setting_file.GetKey("Number Of Frames Y");
numberofframesX = Convert.ToInt32(XX);
numberofframesY = Convert.ToInt32(YY);
for (int i = 1; i < numberofframesX ; i++)
{
X = string.Format("Frame_X_{0} ", i);
framesX = setting_file.GetKey(X);
List<string> floatStrings = new List<string>(framesX.Split(new char[] { ',' }));
List<float> test = new List<float>( floatStrings.Select(tempStr => (float)Convert.ToDouble(tempStr)).ToList());
wo1.woc.Point_X = test;
}
質問の下部にある以下のリンクの2つの画像に示されているようにする必要があります。woc インデックス [0] には、既に float の 2 つのリストがあります。たとえば、フレーム 1 は Frame_X_1 であるため、Point_X のインデックスに各番号を追加するには、Point_X で必要です。 woc[1] Frame_X_2などで.....
これはテキストファイルです (setting_file)
Frame_X_1 =323,332,322,332
Frame_Y_1 =206,212,218,203
Frame_X_2 =323,332,318,332
Frame_Y_2 =206,212,269,203
Frame_X_3 =323,332,318,332
Frame_Y_3 =206,212,269,203
Frame_X_4 =323,332,318,332
Frame_Y_4 =206,212,269,203
Frame_X_5 =323,332,318,332
Frame_Y_5 =206,212,269,203
Frame_X_6 =323,332,318,332
Frame_Y_6 =206,212,269,203
Frame_X_7 =323,332,318,332
Frame_Y_7 =206,212,269,203
Frame_X_8 =323,332,318,332
Frame_Y_8 =206,212,269,203
Number Of Frames X=4
Number Of Frames Y=4
そして、これは woc WireObjectCoordinates クラスのコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AnimationEditor
{
class WireObjectCoordinates
{
public List<float> Point_X = new List<float>();
public List<float> Point_Y = new List<float>();
public WireObjectCoordinates()
{
}
public WireObjectCoordinates(WireObjectCoordinates w)
{
Point_X.AddRange(w.Point_X);
Point_Y.AddRange(w.Point_Y);
}
public void Set(WireObjectCoordinates w)
{
for (int i = 0; i < Point_X.Count; i++)
{
Point_X[i] = w.Point_X[i];
Point_Y[i] = w.Point_Y[i];
}
}
}
}
そして、setting_file(OptionsFile) クラスの GetKey 関数:
/*----------------------------------------------------------
* Function : GetKey
* Description : gets the value of the key.
* Parameters : key
* Return : value of the key if key exist, null if not exist
* --------------------------------------------------------*/
public string GetKey(string key)
{
// string value_of_each_key;
string key_of_each_line;
string line;
int index;
string key_value;
key_value = null;
sr = new StreamReader(Options_File);
while (null != (line = sr.ReadLine()))
{
index = line.IndexOf("=");
// value_of_each_key = line.Substring(index+1);
if (index >= 1)
{
key_of_each_line = line.Substring(0, index);
if (key_of_each_line == key)
{
key_value = line.Substring(key.Length + 1);
}
}
else
{
}
}
sr.Close();
return key_value;
}
ここで、WOC と Point_X と Point_Y がどのように見えるかを示す 2 つの画像を追加しました。
http://imageshack.us/photo/my-images/515/imag0649b.jpg/ http://imageshack.us/photo/my-images/23/imag0648me.jpg/