0

ファイルの作成が完了したと思います。ファイルへの保存に問題があります。私がすべきことは、最初にファイルを作成し、フォームに記入してそのファイルに保存し、ファイル内でそれらをカンマで区切って、次の課題でファイルを読み取るフォームを作成して記入することです。フォームに入力し、コンマで区切ってテキスト ボックスに入力します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace FileExercise
{
    public partial class frmscout : Form
    {
        private StreamWriter fileWriter;

        public frmscout()
        {
            InitializeComponent();
            btnsave.Enabled = false;
        }

        private void clickclear(object sender, EventArgs e)
        {
            tb40.Clear();
            tbheight.Clear();
            tbname.Clear();
            tbposition.Clear();
            tbreps.Clear();
            tbverticle.Clear();
        }

        private void clickexit(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void clickselect(object sender, EventArgs e)
        {
            DialogResult result;
            string fileName;


            using (SaveFileDialog fileChooser = new SaveFileDialog())
            {
                fileChooser.CheckFileExists = false;
                result = fileChooser.ShowDialog();
                fileName = fileChooser.FileName;
            }

            if (result == DialogResult.OK)
            {
                if (fileName == string.Empty)
                {
                    MessageBox.Show("Invalid File Name", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    try
                    {
                        FileStream flstrm = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write);
                        fileWriter = new StreamWriter( flstrm );

                        btnsave.Enabled = true;
                        btnopen.Enabled = false;
                    }
                    catch( IOException )
                    {enter code here
                        MessageBox.Show("Error opening file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }



            //FileStream outfile = new FileStream(fileName, FileMode.Append, FileAccess.Write);


        }

        private void clicksave(object sender, EventArgs e)
        {
            string[] values = new string[6];

            values[0] = tbname.Text;
            values[1] = tbheight.Text;
            values[2] = tb40.Text;
            values[3] = tbposition.Text;
            values[4] = tbreps.Text;
            values[5] = tbverticle.Text;
            //}                   
        }
    }
}
4

3 に答える 3

0

あなたは以下のようにすることができます

    private void clicksave(object sender, EventArgs e)
    {
        string[] values = new string[6];

        values[0] = tbname.Text;
        values[1] = tbheight.Text;
        values[2] = tb40.Text;
        values[3] = tbposition.Text;
        values[4] = tbreps.Text;
        values[5] = tbverticle.Text;
        // you can get file name from `ShowDialog`, 
        //assume that file name is "filename.txt" then
        System.IO.File.WriteAllLines("filename.txt",values);                   
    }
于 2013-05-07T04:22:14.050 に答える
0

StreamWriter の新しいインスタンスを作成し、[保存] ボタンをクリックしてデータを収集していますが、StreamWriter.Write()またはStreamWriter.WriteLine( ) を呼び出している場所はありません。必要に応じて、それらの少なくとも 1 つをコードに挿入する必要があります。ほとんどの場合、clicksave関数内にあります。

編集:例:

private void clicksave(object sender, EventArgs e)
{
    string[] values = new string[6];

    values[0] = tbname.Text;
    values[1] = tbheight.Text;
    values[2] = tb40.Text;
    values[3] = tbposition.Text;
    values[4] = tbreps.Text;
    values[5] = tbverticle.Text;

    fileWriter.WriteLine(String.Join(",",values));
    fileWriter.Flush();
    fileWriter.Close();
    //}                   
}
于 2013-05-07T03:59:38.063 に答える