C#は自動的にデータを保存して読み取ります
ロボット把持プロジェクトでは、ロボットとカメラの姿勢が変わらないことを前提に、「9点キャリブレーション」方式により、機械座標とカメラ座標の変換関係を確立するためのデータセットを取得しました。 、このデータセットが保存されていない場合は、操作インターフェイスを開くたびに、再調整する必要があります。繰り返しの操作を避けるために、データは自動的に保存され、次のクロール時に自動的に読み取られる必要があります。解決策は次のとおりです。
ファイルの保存方法:
/// <summary>
///
/// </summary>
/// <param name="name"> 文件名 </param>
/// <param name="data"> 保存的数据 </param>
/// <returns></returns>
private string SaveToFile(string name,string data)
{
string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\"; //设置保存路径为当前目录(保存在项目文件夹下)
if (!System.IO.Directory.Exists(CurDir)) System.IO.Directory.CreateDirectory(CurDir); //如果该路径不存在时,在当前文件目录下创建文件夹
String filePath = CurDir + name + ".txt";//保存文件的路径+名称+格式
System.IO.StreamWriter file1 = new System.IO.StreamWriter(filePath, false); //文件以覆盖方式添加内容(即下一次添加的数据会覆盖当前的数据)
file1.Write(data); //保存数据到文件
file1.Close(); //关闭文件
file1.Dispose(); //释放对象
return filePath;
}
ファイル保存メソッドを呼び出す:
ファイル名と保存するデータをメソッドに渡すと、プロジェクトフォルダーにSaveDirファイルが生成され(ファイル名は自分で定義できます)、「キャリブレーションパラメーター」テキストファイルがこのファイルに保存されます。メソッドが正常に呼び出された後、次の図に示すように、プロジェクトフォルダーを開いて表示できます。
ファイルの読み取り方法:
/// <summary>
///
/// </summary>
/// <param name="filePath"> 文件路径 </param>
/// <returns></returns>
public string fileToString(string filePath)
{
string str = "";
//获取文件内容
if (System.IO.File.Exists(filePath))
{
System.IO.StreamReader file1 = new System.IO.StreamReader(filePath);//读取文件路径
str = file1.ReadToEnd(); //读取文件中的数据
file1.Close();
file1.Dispose();
}
return str;
}
ファイル読み取りメソッドを呼び出します。
//将文件保存方法中生成的文件路径传入到文件读取方法中
string strData = fileToString(System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\" + "标定参数" + ".txt");