1. 程式人生 > >unity3d C#文字讀寫操作

unity3d C#文字讀寫操作

using UnityEngine;
using System.Collections;
using System.IO;
using System.Collections.Generic;

public class Property{
	public int m_nEno;
	public ColorType m_colorType;
	public int m_bStatu;
}

public class InitData : MonoBehaviour
{
	public string[] strEquipName = new string[8];
	private static string fileAddress;
	public static Dictionary<string , Property > m_equipproperty = new Dictionary<string, Property>();
	private static int m_score;
	
	void Awake(){
		
		print("read file.");
		strEquipName[0] = "huangguang";
		strEquipName[1] = "neck";
		strEquipName[2] = "tanzi";
		strEquipName[3] = "huediejie";
		strEquipName[4] = "kuwa01";
		strEquipName[5] = "kuwa02";
		strEquipName[6] = "kuwa03";
		strEquipName[7] = "kuwa04";

		m_equipproperty.Clear();
		Property pro;
		
		fileAddress = Application.dataPath + "/Resources/initData.dat";
		FileInfo fInfo = new FileInfo(fileAddress);
		if(!fInfo.Exists){
			// initData.dat file is not exist.
			print("initData file is not Exist.");
			for(int i=0; i<8; i++){
				pro = new Property();
				pro.m_nEno = 0;
				pro.m_colorType = 0;
				pro.m_bStatu = 0;
				AddEquipProperty(strEquipName[i],pro);
			}
			m_score = 0;
			WriteData();
		}
		else{
			FileStream fs = new FileStream (fileAddress, FileMode.OpenOrCreate, FileAccess.Read);
			StreamReader sr = new StreamReader(fs);
			//使用StreamReader類來讀取檔案  
			sr.BaseStream.Seek (0, SeekOrigin.Begin);
			
			string strLine ="";
			for(int i=0; i<8; i++){
				 pro = new Property();
				
				strLine = sr.ReadLine();
				if (strLine != null)
					pro.m_nEno = System.Convert.ToInt32(strLine);
				
				strLine = sr.ReadLine();
				if (strLine != null)
					pro.m_colorType = (ColorType)System.Convert.ToInt32(strLine);
				
				strLine = sr.ReadLine();
				if (strLine != null){
					pro.m_bStatu = System.Convert.ToInt32(strLine);
				}
				AddEquipProperty(strEquipName[i], pro);
				//print("property count  "+m_equipproperty.Count +"--eno"+pro.m_nEno);
			}
			strLine = sr.ReadLine();
			if (strLine != null)
				m_score = System.Convert.ToInt32(strLine);
	
			//關閉此StreamReader物件  
			sr.Close ();
		}
		
	}
	
	void Start ()
	{
	
	}

	void Update ()
	{
		
	}
	
	public void AddEquipProperty(string equipName,Property p){
		if(m_equipproperty.ContainsKey(equipName)){
			m_equipproperty.Remove(equipName);
		}
		m_equipproperty.Add(equipName,p);
	}
	
	public Dictionary<string,Property> GetEquipProperty(){
		return m_equipproperty;
	}
	
	public void WriteData()
	{
		FileStream fs = new FileStream (fileAddress, FileMode.Create, FileAccess.Write);
		StreamWriter sw = new StreamWriter (fs);
		sw.Flush ();
		
		sw.BaseStream.Seek(0, SeekOrigin.Begin);
		string s="";
		for(int i=0; i<8; i++){
			Property p = m_equipproperty[strEquipName[i]];
			s = p.m_nEno.ToString()+"\n"+((int)p.m_colorType).ToString()+"\n"+p.m_bStatu.ToString();
			sw.WriteLine(s);
		}
		sw.WriteLine(m_score.ToString());
		print("save init data success.");
		sw.Flush ();
		sw.Close ();
	}
	
	public  int GetScore(){
		return m_score;
	}
	
	public  void SetScore(int s){
		m_score = s;
	}
}

相關推薦

unity3d C#文字操作

using UnityEngine; using System.Collections; using System.IO; using System.Collections.Generic; public class Property{ public int m_nEn

C++檔案操作(三)如何統計文字的行數及如何讀取檔案某一行內容

相關文章 //如何統計文字的行數及如何讀取檔案某一行內容: #include <iostream> #include <fstream> #include <string> using namespace std

C++檔案操作(二)逐字元讀取文字和逐行讀取文字

  相關文章  #include <iostream> #include <fstream> using namespace std; void testByChar() { fstream testByCharFile;

C/C++檔案操作 —— windowsAPI

轉自:http://blog.sina.com.cn/s/blog_6e7fed390100z0j1.html 基於C的檔案操作 在ANSI C中,對檔案的操作分為兩種方式,即流式檔案操作和I/O檔案操作,下面就分別介紹之。 一、流式檔案操作 這種方式的檔案操作有一個重要的結構

C/C++ 檔案操作總結

在程式設計的過程中,檔案的操作是一個經常用到的問題,在C++Builder中,可以使用多種方法對檔案操作,下面我就按以下幾個部分對此作詳細介紹,就是: 1、基於C的檔案操作; 2、基於C++的檔案操作; 3、基於WINAPI的檔案操作; 4、基於BCB庫的檔案操作;

C++檔案操作中,seekg()和seekp()是一樣的功能

如果是fstream定義的物件,則seekg()和seekp()是一樣的功能,還有tellp和tellg seekg是從ifstream類裡繼承來的 seekp是從ofstream類繼承來的 兩者的功能在fstream裡都是定位讀寫指標 char s1[30]={'\0'

使用C++檔案流庫fstream,操作十六進位制文字檔案

最近為智慧移動小車編寫上位機軟體的過程中,遇到了檔案讀寫處理的任務,檔案是一般的文字檔案.txt格式的,其內容由十六進位制資料組成。檔案內資料的格式如下: FF FD 03 FD 77 FE 77 1C 27 FF FD 01 FE 00 FE 00 1E 28 FF FE

C++文件操作

run -- 模式 ocr bin 第一個 輸出數據 con char 1、文件寫入   ofstream類:   ofstream( const char* szName, int nMode = ios::out, int nProt = filebuf::openpr

C文件操作小節

color 執行 gree user use 格式化 width 打開 sans 一.文件打開   使用 fopen( ) 函數來創建一個新的文件或者打開一個已有的文件,這個調用會初始化類型 FILE 的一個對象,類型 FILE包含了所有用來控制流的必要的信息。函數原型為

C語言學習系列——文件操作詳解

記錄 源程序 8.4 lib 令行 stdio.h 空串 表示 參數 當文件按指定的工作方式打開以後,就可以執行對文件的讀和寫。下面按文件的性質分類進行操作。針對文本文件和二進制文件的不同性質,對文本文件來說,可按字符讀寫或按字符串讀寫;對二進制文件來說,可進行

C# 語法---文件操作

can 大小 追加 數組 nco 文本 color 同名 指定 文件讀寫操作 System.IO命名空間有著不同的類,用於執行各種文件操作 1.File 類 提供用於創建、複製、刪除、移動和打開單一文件的靜態方法。Flie的一些方法可以返回FileStream和Str

C++結構體操作

    今天再寫一個練手的程式的時候,忘記了C++關於結構體的檔案讀寫操作,於是在網上找了好多,但是都是有些問題的,經過一番探索終於解決了在檔案中讀寫結構體的問題,下面就是我的解決方法。     首先程式裡要用到ifstream的eof()函式,以及open

c# excel學習(操作

#需要的dll Microsoft.Office.Interop.Excel (安裝了office,都會找到這個dll) //需要匯入 using Microsoft.Office.Interop.Excel; using System.Reflection; //1.建立Applic

【pyqt5】文字操作

主要內容: 1、讀、寫 輸入控制元件(Input Widgets)中的內容(str) 2、儲存資料到txt檔案 3、從txt檔案中讀內容,與輸入控制元件中內容比較   將上述各種輸入控制元件(Input Widgets)中的內容儲存到txt檔案中: # -*- co

C#中檔案的操作

一.檔案的讀取: 1.匯入名稱空間  using System.IO; 2.獲取檔案流    FileStream  fs=new   File(path,FileMode.Open); 3.獲取讀物件    StreamReader  sr=new  Stream

Verilog關於文字資料的操作

Testbench編寫指南是博主新開的一個系列,主要介紹在編寫testbench時使用到的技巧,讓編寫者的水平不再僅僅停留在時鐘訊號、復位訊號等簡單訊號的設定上,更好的完成對設計的模擬工作。 第2篇的題材是檔案的讀寫控制,模擬時經常需要從檔案中讀取測試激勵,還要將模擬結

使用純C++實現SQL Server2005 資料庫操作詳細步驟

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                環境:虛擬機器windows xp,vs2008 + SQLServer 2005 Express資料庫訪問技術採用ADO。需要安裝的軟體包括:microsof

Unity3D-各平臺檔案操作路徑目錄

public string AssetCachesDir { get { string dir = ""; #if UNITY_E

C語言】檔案常用操作(含讀取學生資訊示例)

C檔案概述 檔案是指一組相關資料的有序集合。這個資料集有一個名稱,叫做檔名。實際上我們在C語言程式設計中已經多次使用了檔案。例如源程式檔案(.c)、目標檔案(.0bj)、可執行檔案(.exe)、庫檔

C++對二進位制檔案的操作

二進位制檔案不是以ASCII程式碼存放資料的,它將記憶體中資料儲存形式不加轉換地傳送到磁碟檔案,因此它又稱為記憶體資料的映像檔案。因為檔案中的資訊不是字元資料,而是位元組中的二進位制形式的資訊,因此它又稱為位元組檔案。對二進位制檔案的操作也需要先開啟檔案,用完後要關閉檔案。