C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■85610 / )  Re[2]: 間違いを教えてください。
□投稿者/ 夜叉丸 (80回)-(2017/11/10(Fri) 08:28:03)
文字列にして、INI ファイルに Key=Value の
Value として登録するために
関数を2つ作りました。

byte[] の状態まではうまく変換できたのですが、
String にすると変換できずにエラーメッセージが出てきたので
byte[] → string か、byte[] → dynamic のどちらかで
何かがおかしいのかと思ったのです。
現状では Value に DataTable型 のデータを指定しています。


private string DynamicToString(dynamic Value)
{
	// dynamic → byte[]
	MemoryStream sstream = new MemoryStream();
	IFormatter formatter = new BinaryFormatter();
	formatter.Serialize(sstream, Value);

	// byte[] → string
	string strvalue = "";
	for (int isnum = 0; isnum < sstream.ToArray().Length; isnum++) strvalue += (char)sstream.ToArray()[isnum];

	return (strvalue);
}

private dynamic StringToDynamic(string Value)
{
	try
	{
		if (Value == "") return (null);

		// string → byte[]
		byte[] valuearray = new byte[Value.Length];
		for (int inum = 0; inum < Value.Length; inum++) valuearray[inum] = (byte)Value[inum];

		// byte[] → dynamic
		MemoryStream dstream = new MemoryStream(valuearray);
		IFormatter formatter = new BinaryFormatter();
		return (formatter.Deserialize(dstream));
	}
	catch(Exception ex)
	{
		MessageBox.Show(ex.Message);
		return (null);
	}
}



返信 編集キー/


管理者用

- Child Tree -