コード例 #1
0
ファイル: Misc.cs プロジェクト: madforumz/XbxEditor
 /// <summary>
 /// Used for quickly reading bytes for a length that is not a multiple of 0x200
 /// </summary>
 internal byte[] ReadBytes(ref FATX_Browser.FATX.IOReader br, long length)
 {
     Misc m = new Misc();
     m.UpToNearest200(length);
     byte[] buffer = br.ReadBytes((int)length);
     List<byte> bl = buffer.ToList<byte>();
     bl.RemoveRange((int)(length - 1), (int)(buffer.Length - length));
     buffer = bl.ToArray();
     return buffer;
 }
コード例 #2
0
ファイル: Misc.cs プロジェクト: madforumz/XbxEditor
 public short ReadInt16(ref FATX_Browser.FATX.IOReader br)
 {
     byte[] bytes = br.ReadBytes(0x2);
     Array.Reverse(bytes);
     return BitConverter.ToInt16(bytes, 0x0);
 }
コード例 #3
0
ファイル: Misc.cs プロジェクト: madforumz/XbxEditor
 /// <summary>
 /// ReadUInt32 (big endian)
 /// </summary>
 public uint ReadUInt32(ref FATX_Browser.FATX.IOReader br)
 {
     byte[] bytes = br.ReadBytes(0x4);
     Array.Reverse(bytes);
     return BitConverter.ToUInt32(bytes, 0x0);
 }
コード例 #4
0
ファイル: Read.cs プロジェクト: madforumz/XbxEditor
 /// <summary>
 /// Returns EntryData for an entry in a block
 /// </summary>
 /// <param name="br">The binary reader to use</param>
 /// <param name="EntryBlock">The entry in the block to read</param>
 /// <param name="Block">The block to read from</param>
 internal EntryData GetEData(long originalOffset, FATX_Browser.FATX.IOReader br, uint EntryBlock, uint Block)
 {
     Misc r = new Misc();
     //br.BaseStream.Position = 0x131229000;//(r.GetBlockOffset(Block, Partition, DeviceID)) + (0x40 * EntryBlock);
     //Create our return
     EntryData data = new EntryData();
     //Read our variables
     data.EntryOffset = originalOffset + br.BaseStream.Position;
     data.FileNameSize = br.ReadByte();
     data.Flags = br.ReadByte();
     data.FileName = Encoding.ASCII.GetString(br.ReadBytes((int)data.FileNameSize));
     //Go to the end of the name to continue reading the variables
     br.BaseStream.Position += (0x2A - (int)data.FileNameSize);
     data.StartingCluster = r.ReadUInt32(ref br);
     data.Size = r.ReadUInt32(ref br);
     data.CreationDate = r.ReadUInt16(ref br);
     data.CreationTime = r.ReadUInt16(ref br);
     data.AccessDate = r.ReadUInt16(ref br);
     data.AccessTime = r.ReadUInt16(ref br);
     data.ModifiedDate = r.ReadUInt16(ref br);
     data.ModifiedTime = r.ReadUInt16(ref br);
     //br.BaseStream.Position += 0xC;
     br.Close();
     return data;
     //TODO: Datetime conversion from FAT to DateTime
 }