2

私はプログラミングは初めてですが、プログラミングが好きで、できるだけ多くのことを学ぼうとしています。コメントを入力する複数行のテキスト ボックス (txtOutput) を持つ小さなアプリケーションをコーディングしています。これらのコメント/行は、文字列の配列で転送されます。次に、いくつかの変数と配列を転送するクラスを呼び出して、すべてを txt ファイルに出力します。変数からのデータが取り込まれた txt ファイルを取得できますが、配列の内容を txt ファイルに取得することはできません。助けていただければ幸いです。

txtOutput から配列へのテキスト

public void button6_Click(object sender, EventArgs e)
    {
       string[] comments = txtOutput.Text.Split(' ');

配列とその他の変数をclass1に転送します(これらの変数と配列の内容を作成してtxtファイルに保存するコードがあります)。他の 2 つの変数は問題なくファイルに出力されます。

WriteTextFile WTR = new WriteTextFile();
        WTR.Save(temperatura, speedMotore, comments);

Class1 コード (ここで txt ファイルを作成して保存します。

class WriteTextFile
{
    public void Save(int sendTem, int sendMot, string[] comments)
    {
        DateTime Now = DateTime.Now;
        string dateTime = Now.ToString("F");
        SaveFileDialog sd = new SaveFileDialog();
        sd.Filter = "Text File | *.txt";
        if (sd.ShowDialog() == DialogResult.OK)  
{  
using (StreamWriter sw = new StreamWriter(sd.FileName))  
{
    sw.Write("File diconfigurazione del programma Arduino Control " + "\r\n");
    sw.Write("\r\n");
    sw.Write(dateTime + "\r\n");
    sw.Write("\r\n");
    sw.Write("\r\n");
    sw.Write("La temperatura impostata in PWM1 è: " + sendMot + "\r\n");
    sw.Write("\r\n");
    sw.Write("La velocità del motore impostata in PWM2 è: " + sendTem + "\r\n");
    sw.Write("\r\n");
    sw.Write(comments[1] + "\r\n");
    sw.Dispose();  
    sw.Close();
}  


}}}

テキストをtxtOutputから「comments」配列に正しく転送しているかどうかわかりません。私が達成したいのは、txtOutput からこれらの行を txt ファイルに 1 つずつ出力することです。代わりに、「Index out of range.......」というメッセージを受け取ります。

4

2 に答える 2

3

Disposeステートメント内で行うように呼び出さないでusingください -usingステートメントがそれを処理します。これが問題の原因である可能性があります。ストリームはフラッシュする前に破棄されます。

そのままにしてください:

using (StreamWriter sw = new StreamWriter(sd.FileName))  
{
    sw.Write("File diconfigurazione del programma Arduino Control " + "\r\n");
    sw.Write("\r\n");
    sw.Write(dateTime + "\r\n");
    sw.Write("\r\n");
    sw.Write("\r\n");
    sw.Write("La temperatura impostata in PWM1 è: " + sendMot + "\r\n");
    sw.Write("\r\n");
    sw.Write("La velocità del motore impostata in PWM2 è: " + sendTem + "\r\n");
    sw.Write("\r\n");
    sw.Write(comments[1] + "\r\n");
    sw.Close();
}  
于 2013-04-14T20:02:48.563 に答える
0

問題が解決しました。コメントありがとうございます。私のプログラムの配列は次のように機能します。

string[] comments = textBox5.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

次に、コンテンツを印刷します。

foreach (string i in comments)
{
sw.Write(i + "\r\n");
}
于 2013-04-15T05:25:39.963 に答える