3

C#で3D文字列配列をファイルに保存して復元する方法は? やあ; パブリック配列のクラスを作成するプロジェクトをプログラミングしているので、すべての形式でそれらを使用できます。

クラス MainArray

{

   // Introduce Moarefi Projeh

   public static string[] MPArray = new string[15];

   // Introduce Moarefi Personel Rozmozd

   public static string[,] MPRArray = new string[20,15];

   // Introduce Moarefi Peymankaran

   public static string[,] MPeymankaranArray = new string[20, 15];

   // Introduce Gozaresh PersonelRozMozd

   public static string[,] GPRMArray = new string[20, 15];

   
   public static string[,,] MArr = new string[20,20,20];

 

}

これらの配列のすべてのデータを何らかの形式で保存します。オペレーターがプログラムの使用の最後にこれらすべての配列をファイルに格納し、次のプログラムの使用の開始時にこれらのデータを復元できるクラスを作成したいと考えています。

これが C# での最初のプログラミングであることをご存知でしょうか。これを実行できるクラス コードを教えてください。次のように、メイン プログラムで単純なタラを使用するクラス コードが必要です。 MyData.WriteArray(MyArrayName,FileName); ストアおよび MyData.ReadArray(MyArrayName,FileName) の場合。復元用。

4

2 に答える 2

2

このコードは、タイプ MyData のオブジェクトをバイナリ ファイルに保存します。

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable()]
public class MyData
{
     private string[,,] SArr;

     public MyData(int sizex,int sizey,int sizez)
     {
        SArr = new string[sizex,sizey,sizez];
     }         
     public MyData(string[,,] data)
     {
        SArr = data;
     }         
     public string this[x,y,z]
     {
        get
        {
            return SArr[x,y,z];
        }
        set
        {
            SArr[x,y,z] = value;
        }
     }
     public void SaveToFile(String fileName)
     {
          Stream TestFileStream = File.Create(fileName);
          BinaryFormatter serializer = new BinaryFormatter();
          serializer.Serialize(TestFileStream, this);
          TestFileStream.Close();
     }

    public static MyData ReadFromFile(String fileName)
    {
        if (File.Exists(FileName))
        {
            Stream TestFileStream = File.OpenRead(FileName);
            BinaryFormatter deserializer = new BinaryFormatter();
            var data = (MyData)deserializer.Deserialize(TestFileStream);
            TestFileStream.Close();
            return data;
        }
        return null;
    }
}

コード内:

var data = new MyData(4,4,4);
MyData[1,1,0] = "TestData";
data.SaveToFile(@"C:\Test.data");
var data2 = MyData.ReadFromFile(@"C:\Test.data");
//data2[1,1,0] == "TestData"
于 2013-01-12T10:27:46.137 に答える
1

保存する前に、配列をシリアル化する必要があります。ここにあなたを助けるかもしれないリンクがあります。

于 2013-01-12T10:29:00.570 に答える