-1

このコードを使用して、ファイルに書き込まれるデータを変更しようとしましたが、何をしても、null バイトを直接割り当てても変更されません。生成されたクラスとは別のクラスから辞書エントリにアクセスしようとしています。

Buffer.BlockCopy(
    pio.GetBuffer(), 
    0, 
    Wat.SettingEntryList[0x63E83FFF].Data, 
    0,     
    Wat.SettingEntryList[0x63E83FFF].Data.Length);

Buffer.BlockCopy(
    pio.GetBuffer(), 
    Wat.SettingEntryList[0x63E83FFF].Data.Length, 
    Wat.SettingEntryList[0x63E83FFE].Data, 
    0, 
    Wat.SettingEntryList[0x63E83FFE].Data.Length);

クラスの変数と、辞書を初期化した方法を次に示します。

public class SettingEntry
{
    public byte[] Data { get; set; }
}

public Dictionary SettingEntryList = new Dictionary();

ファイルにデータを書き込むときは、次のように各キーを調べます。

foreach (KeyValuePair<int, SettingEntry> SE in SettingEntryList)
{
    pio.WriteBytes(SE.Value.Data);
}

私は行ってデバッグしました。キーが存在することを確認したら、次のコードを使用しました。実行すると、アプリケーションは終了するまでループに留まりました。

while (GPD.SettingEntryList[0x63E83FFF].Data != new byte[GPD.SettingEntryList[0x63E83FFF].Data.Length])
GPD.SettingEntryList[0x63E83FFF].Data = new byte[GPD.SettingEntryList[0x63E83FFF].Data.Length];
4

1 に答える 1