1

私は C++ 開発者で、最近 WPF C# の世界に移行しました。fileopendialogを使用してテキストファイルをロードし、ファイルを選択してコンボボックスに保存し、writebuttonをクリックして、テキストファイルにあるデータを使用していくつかの操作を実行する必要があるアプリを開発しています。

次のようにC ++で実行しました。

if(button == m_writeButton)
{
    // get the data from the file
    File m_binFile = m_fileChoice->getCurrentFile();
    MemoryBlock m_data;

    m_binFile.loadFileAsData(m_data);
    size_t blockSize = m_data.getSize();

    unsigned char *f_buffer;
    f_buffer = (unsigned char *)m_data.getData();
    unsigned cnt = 0;

    // Some code
}

私は次のようにC#でそれを行いました:

<ComboBox Name="WriteFileCombo" >
                        <ComboBoxItem Content="Firmware To Download" />
                        <ComboBoxItem Content="{Binding FirmwarePath}" />
</ComboBox>
<Button Content="..." Command="{Binding Path=WriteFilePathCommand}" Name="FileDialogBtn"/>                       

<Button Content="Write File" Command="{Binding Path=WriteFileCommand}" Name="WriteFileBtn" />

ビュー モデル クラス:

private string _selectedFirmware;
    public string FirmwarePath
    {
        get { return _selectedFirmware; }
        set
        {
            _selectedFirmware = value;
            OnPropertyChanged("FirmwarePath");
        }
    }

// Gets called when Browse Button (...) is clicked
private void ExecuteWriteFileDialog()
    {
        var dialog = new OpenFileDialog { InitialDirectory = _defaultPath };
        dialog.DefaultExt = ".txt";
        dialog.Filter = "TXT Files (*.txt)|*.txt";
        dialog.ShowDialog();
        FirmwarePath = dialog.FileName;

        WriteFileCommandExecuted();
    }

// Gets called when Write Button is clicked
public void WriteFileCommandExecuted()
    {
      // same logic as in c++
    }

メソッドで C++ コードで実行されるのと同じ操作を実行するにはどうすればよいWriteFileCommandExecuted()ですか?

助けてください :)

4

1 に答える 1

1
//Inside void WriteFileCommandExecuted()

 System.IO.StreamReader sr = new System.IO.StreamReader("File Path");
                textBox1.Text =  sr.ReadToEnd();

        //Or if you need more control

        System.IO.FileStream fs = new System.IO.FileStream(FirmwarePath, System.IO.FileMode.CreateNew);
        System.IO.StreamReader sr = new System.IO.StreamReader(fs);
        string textdata = sr.ReadToEnd();
        int fileSize = (int)new System.IO.FileInfo(FirmwarePath).Length;

        Byte f_buffer = new Byte();
        f_buffer = Convert.ToByte(textdata);
        int cnt = 0;

    //The FirmwarePath is the path returned to you by your file dialog box.
    //If you want to write the class you will need to instantiate is System.IO.StreamWriter then //invoke the "write" method
于 2012-10-13T19:02:16.420 に答える