新的編輯:分配列從TXT在C#中的多個文本框/表格
嗨,
我已經在幾個代碼工作,找到了最佳的解決方案來調用一個文本文件,並指定每列單獨的文本框on「Button1_Click」。
我還設法編寫了一個代碼,允許我編輯文本框中的數據,並將原始字符串格式的編輯數據保存到「Button2_Click」的TXT文件中。
這是現在的問題:
當我再次呼籲的button1_Click編輯的TXT文件,然後按,事情變得一團糟:格式消失了,有很多的值之間的斷裂。
原始的TXT文件和被編輯的文件之間沒有明顯的區別,但代碼不會使用它。
我可能有一個想法可能是什麼問題。當我調用原始TXT文件時,每個行被分配給一個字符串數組的一個元素。 >>>當數據有5行時,5個元素存儲到一個數組中
但是我的SAVE代碼將整個數據分配給一個數組中的一個單獨元素。這意味着我只有數組[0]可用。
由於我是新手,我需要你的幫助。
謝謝!
這是我的代碼: 私人無效的button1_Click(對象發件人,EventArgs的) { textBox1.Text = 「」; textBox2.Text =「」; textBox3.Text =「」;
var table = new DataTable();
var fileContents = File.ReadAllLines(@"C:\Users\root\Desktop\TXT.txt");
var splitFileContents = (from f in fileContents select f.Split(' ')).ToArray();
int maxLength = (from s in splitFileContents select s.Count()).Max();
for (int i = 0; i < maxLength; i++)
{
table.Columns.Add();
}
foreach (var line in splitFileContents)
{
DataRow row = table.NewRow();
row.ItemArray = (object[])line;
table.Rows.Add(row);
}
for (int i = 0; i< maxLength; i++)
{
textBox1.Text += table.Rows[i].ItemArray[0].ToString()+"\r\n";
textBox2.Text += table.Rows[i].ItemArray[1].ToString() + "\r\n";
textBox3.Text += table.Rows[i].ItemArray[2].ToString() + "\r\n";
}
}
//節省代碼
private void button2_Click(object sender, EventArgs e)
{
var table = new DataTable();
string[] fileContents = new string[] { textBox1.Text, textBox2.Text, textBox3.Text };
var splitFileContents = (from f in fileContents select f.Split('\r')).ToArray();
int maxLength = (from s in splitFileContents select s.Count()).Max();
for (int i = 0; i < maxLength; i++)
{
table.Columns.Add();
}
foreach (var line in splitFileContents)
{
DataRow row = table.NewRow();
row.ItemArray = (object[])line;
table.Rows.Add(row);
}
var test = "";
for (int i = 0; i < 5; i++)
{
test += table.Rows[0].ItemArray[i].ToString() +" " + table.Rows[1].ItemArray[i].ToString() + " " + table.Rows[2].ItemArray[i].ToString() + "\r\n" ;
}
textBox4.Text += test[1];
var stringArr = new string[] { test };
File.WriteAllLines(@"C:\Users\root\Desktop\TXT.txt", stringArr);
原帖
我是新的C#和我想從一個文本文件導入數據到我的GUI並將其值分成多個文本框。
含義,我想列A至textBoxA和B列分配給textBoxB等..
我已經發現了這個東西,但不能讓它正常運行:
DataTable myDataTable = new DataTable();
string[] records = File.ReadAllLines(@"C:\Users\Me\Desktop\TXT.txt");
foreach (string record in records)
{
DataRow r = myDataTable.NewRow();
string[] fields = record.Split('\t');
/* Parse each field into the corresponding r column
* ....
*/
myDataTable.Rows.Add(r);
/
}
一旦數據被正確地分配我想編輯的文本框的數據,並將這些值保存到原文按鈕上的文件。
爲此,我已經有了一個簡單的解決方案。只需添加該代碼的事件處理程序,它工作正常:
File.WriteAllText(@"C:\Users\Me\Desktop\1msmoorGUI\msmoor\TEXT.TXT", textBoxA.Text +" "+ textBoxB.Text);
我的主要問題是列的每一個使用上述代碼的文本框的分配。
感謝您的幫助