【问题标题】:windows phone, reading level from txt filewindows phone,从 txt 文件读取级别
【发布时间】:2012-11-26 16:24:19
【问题描述】:

我正在开发一款 windows phone 7 游戏,我已将关卡保存在文本文件中,我想将其加载到二维数组中,但没有 txt 文件的内容导入器,我使用了隔离存储管理器

protected void read_lvl()
    {
        IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
        IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("myFile.txt", FileMode.Open, FileAccess.Read);
        using (StreamReader reader = new StreamReader(fileStream))
        {    //Visualize the text data in a TextBlock text

            while (!reader.EndOfStream)
            {
                //for each row
                for (int i = 0; i < rows; i++)
                {
                    //read in the line
                    string myLine = reader.ReadLine();
                    //take out the commas
                    string[] row = myLine.Split(',');

                    //convert to string to ints
                    //and feed back into array
                    int[] nRow = new int[row.Length];
                    for(int r=0; r<columns;r++){
                        nRow[r] =Convert.ToInt32(row[r]);
                        myreadArray[i, r] = nRow[r];
                    }

                }
            }

        }
    }

这对于加载保存的游戏状态等很好 但我想在多个.txt 文件中有多个级别,并尝试使用它来代替:

        //stream from file
        Stream stream = TitleContainer.OpenStream("myFile.txt");
        //make a stream reader from the stream
        using (StreamReader sreader = new StreamReader(stream))

但是它抛出了同样的错误:没有处理这种文件类型的进口商。

做什么?

【问题讨论】:

    标签: c# windows-phone-7 xna-4.0 filereader


    【解决方案1】:

    您只能通过更改文件“myfile1.txt”的名称并更改属性 FileMode.OpenOrCreate(如果您还没有它)来使用隔离存储。

    【讨论】:

      【解决方案2】:

      不知道这是否对你有帮助,但这就是我将游戏地图加载到我的游戏中的方式(x 和 y 是我的网格坐标):

      var assembly = System.Reflection.Assembly.GetExecutingAssembly();
      var stream = assembly.GetManifestResourceStream("View.Maps.Breakout_" + _breakoutSelection + ".txt");
      
      using (var streamReader = new StreamReader(stream))
      {
          int y = 0;
      
          while (!streamReader.EndOfStream)
          {
              string data = streamReader.ReadLine();
      
              int x = 0;
      
              foreach (var mapSquare in data)
              { code here }
          }
      }
      

      【讨论】:

        【解决方案3】:

        您应该能够添加文件,将“构建操作”设置为“无”,并将“复制到输出目录”设置为“如果较新则复制”并使用

        XDocument.Load(TitleContainer.OpenStream(@"path-to-file.txt"));
        

        如图here

        希望这会有所帮助!

        【讨论】:

        • 这会将它保存到哪里?或者我是否将它放入 var 级别这也是针对 xml 文件的,这将如何与 .txt 一起使用我想将它读入 2D 数组
        • 同样的事情。构建项目会将其放在 XAP 中与解决方案资源管理器相同的目录中(相对于根目录)。执行此操作,将 XAP 重命名为 zip 并打开它以查看它的位置。
        • 另外,请注意 TitleContainer.OpenStream 返回一个流 - 您可以使用 StreamReader 处理它并对内容执行任何您想要的操作。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多