//Constructors public Dir(mwg.File.mwgBinary mbin) : base(mbin) { this.made = (mwg.File.mbDateTime)mbin; this.lastModified = (mwg.File.mbDateTime)mbin; this.annex = (mwg.File.mbString)mbin; this.nodes = (mwg.File.mwgIff.NodeArray)mbin; }
public NodeArray(mwg.File.mwgBinary mbin) { uint postLen = (uint)(mwg.File.mbUInt32)mbin; if (postLen > mbin.RestLength) { throw new System.Exception("mwg.File.mwgIff.NodeArray Construction from mwg.File.mwgBinary\n\tバイナリデータの長さが指定した数値に足りません。"); } int restmin = (int)(mbin.RestLength - postLen); while (mbin.RestLength > restmin) { switch ((string)(mwg.File.mbFourcc)mbin.preReadBytes(4)) { case "DIR ": this.list.Add(new mwg.File.mwgIff.Dir(mbin)); break; case "FILE": this.list.Add(new mwg.File.mwgIff.File(mbin)); break; case "DATA": default: //TODO: DATA を登録 break; } } }
public mbInt32(mwg.File.mwgBinary mbin) { this.dat = 0; if (mbin.RestLength < 4) { return; } dat = (int)mbin.readByte(); if (dat > 127) //負の数 { dat -= 128; for (int i = 0; i < 3; i++) { dat = dat * 256 + (int)mbin.readByte(); } dat += System.Int32.MinValue; } else //正の数 { for (int i = 0; i < 3; i++) { dat = dat * 256 + (int)mbin.readByte(); } } }
//--methods public void WriteTo(mwg.File.mwgBinary mbin) { if (this.Length > mbin.RestLength) { throw new mwg.File.mwgBinary.EndOfDataException(); } mbin.writeBytes((byte[])this); }
//Constructors public File(mwg.File.mwgBinary mbin) : base(mbin) { this.made = (mwg.File.mbDateTime)mbin; this.lastModified = (mwg.File.mbDateTime)mbin; this.content = (mwg.File.mbBytes)mbin; this.nodes = (mwg.File.mwgIff.NodeArray)mbin; //TODO: Data 以外を除去する。 }
public override mwg.File.mwgBinary ToMwgBinary() { mwg.File.mwgBinary r = (mwg.File.mwgBinary) new mwg.File.mbUInt32((uint)(this.Length - 4)); for (int i = 0; i < this.list.Count; i++) { r += ((mwg.File.mwgIff.Node) this.list[i]).ToMwgBinary(); } return(r); }
//constructor public mbFourcc(mwg.File.mwgBinary mbin) { if (mbin.RestLength < 4) { this.dat = mwg.File.mbFourcc.Null; } else { this.dat = mbin.readBytes(4); } }
//constructor public mbUInt32(mwg.File.mwgBinary mbin) { this.dat = 0; if (mbin.RestLength < 4) { return; } for (int i = 0; i < 4; i++) { this.dat = this.dat * 256 + (uint)mbin.readByte(); } }
//===================================== // Constructors //------------------------------------- public mfTime(ref mwg.File.mwgBinary mbin) { dat = 0; if (mbin.RestLength < 5) { return; } for (int i = 0; i < 5; i++) { dat = dat * 256 + (int)mbin.readBytes(1)[0]; } }
//constructor public mwgDword(ref mwg.File.mwgBinary mbin) { n = 0; if (mbin.RestLength < 4) { return; } for (int i = 0; i < 4; i++) { n = (uint)(n * 256 + (int)mbin.readBytes(1)[0]); } }
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { if (e.Button.Tag == null) { return; } switch (e.Button.Tag.ToString()) { case "Save": mwg.File.mwgBinary mbin = (mwg.File.mwgBinary) this.dtWord; mbin.filename = "c:\\texDocuments\\EngWordTest\\mbwordtest.wrd"; mbin.SaveToFile(); break; case "Read": mbin = new mwg.File.mwgBinary("c:\\texDocuments\\EngWordTest\\mbwordtest.wrd"); this.dtWord = new mwgWords.EngWord(mbin); this.initialize(); break; case "OK": break; } }
//--constructor public mb(mwg.File.mwgBinary mbin) { }
//public Node(){} public Node(mwg.File.mwgBinary mbin) { this.id = (mwg.File.mbFourcc)mbin; this.name = (mwg.File.mbString)mbin; }
public mfBytes(ref mwg.File.mwgBinary mbin) { this.dat = mbin.readBytes((uint)(new mwgDword(ref mbin))); }
//constructor public mfString(ref mwg.File.mwgBinary mbin) { this.uni = new System.Text.UnicodeEncoding(); this.dat = uni.GetString(mbin.readBytes((uint)(new mwg.File.mwgDword(ref mbin)))); }
//constructor public mwgFourcc(ref mwg.File.mwgBinary mbin) : this(mbin.readBytes(4), 0) { }
public Data(mwg.File.mwgBinary mbin) : base(mbin) { this.data = (mwg.File.mbBytes)mbin; }
//constructor public mbString(mwg.File.mwgBinary mbin) { System.Text.UnicodeEncoding uni = new System.Text.UnicodeEncoding(); this.dat = uni.GetString(mbin.readBytes((uint)(new mwg.File.mbUInt32(mbin)))); }
//constructor public mbBytes(mwg.File.mwgBinary mbin) { this.dat = mbin.readBytes((uint)(new mwg.File.mbUInt32(mbin))); }
public mbBool(mwg.File.mwgBinary mbin) { this.dat = (127 < (int)mbin.readByte()); }