gpt4 book ai didi

C# 将文件读入字符串数组并将其打印到文本框中

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:42 25 4
gpt4 key购买 nike

我的代码有问题,如标题中所述。

所以我想做的是从文件中读取一个数字并将其打印到 TextBox 但我唯一能写的是 System.String[].

这是我的代码:

private void ladenToolStripMenuItem_Click(object sender, EventArgs e)
{
// Kontostand aus Datei auslesen und in variable speichern anschließend in tb schreiben

string[] Kontostand = File.ReadAllLines(pathkonto);

string tbkontostand = Kontostand.ToString();

this.lbKontostand.Text = "Kontostand: " + tbkontostand + "€";


string[] Log = File.ReadAllLines(pathlog);

string LoginTextbox = Log.ToString();

this.tbLog.Text = LoginTextbox;
}

也许我应该说我的 Kontostand 是一个我想要看起来像那样的标签:

Kontostand: 500 €

我想读出的文件看起来像这样:

500

谢谢你帮助我:)

蒂姆

最佳答案

您没有指定,但看起来您使用的是 Winforms。如果是这样,你应该使用这个:

    string[] Log = File.ReadAllLines(pathlog);

this.tbLog.Lines = Log;

ToString() 方法的默认行为是只返回对象类型的名称。 string[] 类型不会覆盖默认行为,因此这就是您在文本框中得到的内容。

但是,Winforms TextBox 类有一个类型为 string[]Lines 属性。因此,您只需将其直接设置为您从读取文件中获得的 string[]

在您的原始代码中,您还希望在 Label 文件中包含来自不同来源的行,您可以像这样轻松地做到这一点:

string[] Kontostand = File.ReadAllLines(pathkonto);

this.lbKontostand.Text = "Kontostand: "
+ string.Join("", Kontostand)
+ "€";

Label 控件没有 Lines 属性,因此在这种特殊情况下,您确实需要使用类似 >string.Join().

由于 Label 控件也没有多行模式,我只是将文件的内容与空字符串作为分隔符连接起来。在这里使用 Environment.NewLine 是没有意义的。您当然可以使用任何您想要的字符串来代替 ""。这取决于你。

现在,从您编辑的问题来看,您可能根本不需要任何类型的多行支持,因为您描述的数据只是一行。如果确实如此,您的代码可以简单得多(并且效率更高):

private void ladenToolStripMenuItem_Click(object sender, EventArgs e)
{
this.lbKontostand.Text = "Kontostand: "
+ File.ReadAllText(pathkonto)
+ "€";
this.tbLog.Text = File.ReadAllText(pathlog);
}

就此而言,如果您只是想将文件内容复制到相应的控件中,无论如何都可以这样做。读取数组中的内容,仅将该数组的全部内容复制到控件中,效率低于仅读取所有文件文本并将其直接分配给 Text 属性。换行符将读入 ReadAllText() 返回的字符串中,因此无论文件内容是否真的是多行的,上面的代码应该比您最初尝试做的更好。

关于C# 将文件读入字符串数组并将其打印到文本框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46089679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com