2017-09-01 28 views
-1

richtextboxのテキストをファイルヘルパーでtxtファイルに保存したいので、私はプログラムの先頭にあるrichtextboxに読み込むことができます。richtextboxの内容をファイルに保存する

私は文字列に内容を印刷して、私はbytearrayに変換したいので。この後私は私のtxtファイルにbytearrayを印刷したい。 そして、私のプログラムの開始時にrichtextboxにロードしたいテキストファイル。

マイfilehelper:

namespace Kontomanager_0._3 
{ 
    public class filehelper 
    { 

    public filehelper(string myPath) 
    { 
     myPath = MyPath; 
    } 

    private string MyPath { get; } 

    public byte[] ReadByteString() 
    { 
     return File.ReadAllBytes(MyPath); 
    } 

    public void WriteAllBytes(byte[] arrayToWrite) 
    { 
     File.WriteAllBytes(MyPath, arrayToWrite); 
    } 

    internal static byte[] ReadAllBytesStatic(string myPath) 
    { 
     return File.ReadAllBytes(myPath); 
    } 


    } 
} 

私のWindowsフォームコード:

namespace Kontomanager_0._3 
{ 
    //private filehelper FileHelper { get; set; } 
    public partial class Form1 : Form 
    { 
    filehelper file = new filehelper("Aktivitaeten.txt"); 

    //Gutschriftvariablen 
    string gBetrag; 
    string gAbsender; 
    string gDatum; 

    //Abbuchungvariablen 
    string aBetrag; 
    string aEmpfaenger; 
    string aDatum; 

    // Transaktionenzähler variablen 
    int counter; 
    string lbcounter; 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void btnGutschrift_Click(object sender, EventArgs e) 
    { 
     Gutschrift(); 
    } 

    private void btnAbbuchung_Click(object sender, EventArgs e) 
    { 
     Abbuchung(); 
    } 

    private void btnSave_Click(object sender, EventArgs e) 
    { 
     Speichern(); 
    } 

    private void btnBeenden_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } 


    void Gutschrift() 
    { 
     Zähler(); 
     gBetrag = this.tbgBetrag.Text; 
     gAbsender = this.tbgAbsender.Text; 
     gDatum = this.tbgDatum.Text; 

     this.tbLog.Text += "(" + lbcounter + ")" + "[" + gDatum + "] " + gBetrag + "€ Erhalten von" + gAbsender + "\n"; 
    } 

    void Abbuchung() 
    { 
     Zähler(); 
     aBetrag = this.tbaBetrag.Text; 
     aEmpfaenger = this.tbaEmpfaenger.Text; 
     aDatum = this.tbaDatum.Text; 

     this.tbLog.Text += "(" + lbcounter + ")" + "[" + aDatum + "] " + aBetrag + "€ Gesendet an: " + aEmpfaenger + "\n"; 
    } 

    void Zähler() 
    { 
     counter += 1; 

     lbcounter = counter.ToString(); 

     lbTransaktionen.Text = "Transaktionen: " + lbcounter; 
    } 

    void Speichern() 
    { 
     string text; 
     text = this.tbLog.Text; 
     string path = "Aktivitaeten.txt"; 

      DialogResult Result = MessageBox.Show("Datei hier abspeichern" + path, "Error", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information); 

      if(Result == DialogResult.Yes) 
      { 

       // File überschreiben und speichern 
       byte[] array = Encoding.UTF8.GetBytes(text); 
      File.WriteAllBytes(path, array); 

      } 
      else if (Result == DialogResult.No) 
      { 
       // 
      } 
    } 
    } 
} 
+0

あなたは何らかの問題を記述している部分を忘れています... – David

+0

あなたの質問は何ですか?このコードはあなたが望むことをしませんか? – stuartd

+0

あなたは既にあなたが求めているコードを持っていることを示していますか?クール。 –

答えて

1

このコードは、私はあなたが

public filehelper(string myPath) 
{ 
    MyPath = myPath; 
} 

private string MyPath { get; set;} 
を書きたいとし

public filehelper(string myPath) 
{ 
    myPath = MyPath; 
} 

private string MyPath { get; } 

完全に間違っています

あなたが使用したコードが、読み書きしたいファイルの名前を保持するために使用した変数MyPathの値が空になったことを確認します。それ以外は、あなたのコードが私のために働いているようです。

+1

いいところ。 'File.WriteAllBytes' [渡されたパスがnullの場合は' ArgumentException'をスローします。](https://msdn.microsoft.com/en-us/library/system.io.file.writeallbytes(v = vs .110).aspx)、OPはFileHelperを実際に使用しているとは思われません。代わりに、File.WriteAllBytes(path、array);を呼び出しています。 – stuartd

+0

アップス、それに気付かなかった。もし彼がfilehelperを使うのであれば、それはうまくいくはずです。 – pajamac

+0

これで、テキストは1行にしか印刷されません。しかし、私はそれが新しい行のすべての文であることを望む – dotDREAMS

関連する問題