/[RomCheater]/trunk/RomCheater.Core/BitTools.cs
ViewVC logotype

Diff of /trunk/RomCheater.Core/BitTools.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 531 by william, Wed Jun 5 08:03:28 2013 UTC revision 532 by william, Wed Jun 5 09:01:44 2013 UTC
# Line 133  namespace RomCheater.Core Line 133  namespace RomCheater.Core
133    
134          #region Structure Support          #region Structure Support
135    
136          public static T[] ConvertByteArray<T>(byte[] data) where T : IConvertible          public static T[] ConvertByteArray<T>(byte[] data, Func<bool> cancelmethod) where T : IConvertible
137          {          {
138              Type t = typeof(T);              Type t = typeof(T);
139              string name = t.Name.ToLower();              string name = t.Name.ToLower();
# Line 143  namespace RomCheater.Core Line 143  namespace RomCheater.Core
143              switch (name)              switch (name)
144              {              {
145                  case "byte":  // unsigned byte                  case "byte":  // unsigned byte
146                        list = new List<T>();
147                        using (MemoryStream ms = new MemoryStream(data))
148                        {
149                            using (BinaryReader br = new BinaryReader(ms))
150                            {
151                                while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadByte(), typeof(T))); }
152                            }
153                        }
154                        break;
155                  case "sbyte": // signed byte                  case "sbyte": // signed byte
156                      list = data.Cast<T>().ToList();                      list = new List<T>();
157                        using (MemoryStream ms = new MemoryStream(data))
158                        {
159                            using (BinaryReader br = new BinaryReader(ms))
160                            {
161                                while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadSByte(), typeof(T))); }
162                            }
163                        }
164                      break;                      break;
165                  case "int16": // short                    case "int16": // short  
166                      list = new List<T>();                      list = new List<T>();
# Line 152  namespace RomCheater.Core Line 168  namespace RomCheater.Core
168                      {                      {
169                          using (BinaryReader br = new BinaryReader(ms))                          using (BinaryReader br = new BinaryReader(ms))
170                          {                          {
171                              while (br.BaseStream.Position < br.BaseStream.Length) { list.Add((T)Convert.ChangeType(br.ReadInt16(), typeof(T))); }                              while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadInt16(), typeof(T))); }
172                          }                          }
173                      }                      }
174                      break;                      break;
# Line 162  namespace RomCheater.Core Line 178  namespace RomCheater.Core
178                      {                      {
179                          using (BinaryReader br = new BinaryReader(ms))                          using (BinaryReader br = new BinaryReader(ms))
180                          {                          {
181                              while (br.BaseStream.Position < br.BaseStream.Length) { list.Add((T)Convert.ChangeType(br.ReadUInt16(), typeof(T))); }                              while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadUInt16(), typeof(T))); }
182                          }                          }
183                      }                      }
184                      break;                      break;
# Line 172  namespace RomCheater.Core Line 188  namespace RomCheater.Core
188                      {                      {
189                          using (BinaryReader br = new BinaryReader(ms))                          using (BinaryReader br = new BinaryReader(ms))
190                          {                          {
191                              while (br.BaseStream.Position < br.BaseStream.Length) { list.Add((T)Convert.ChangeType(br.ReadInt32(), typeof(T))); }                              while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadInt32(), typeof(T))); }
192                          }                          }
193                      }                      }
194                      break;                      break;
# Line 182  namespace RomCheater.Core Line 198  namespace RomCheater.Core
198                      {                      {
199                          using (BinaryReader br = new BinaryReader(ms))                          using (BinaryReader br = new BinaryReader(ms))
200                          {                          {
201                              while (br.BaseStream.Position < br.BaseStream.Length) { list.Add((T)Convert.ChangeType(br.ReadUInt32(), typeof(T))); }                              while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadUInt32(), typeof(T))); }
202                          }                          }
203                      }                      }
204                      break;                      break;
# Line 192  namespace RomCheater.Core Line 208  namespace RomCheater.Core
208                      {                      {
209                          using (BinaryReader br = new BinaryReader(ms))                          using (BinaryReader br = new BinaryReader(ms))
210                          {                          {
211                              while (br.BaseStream.Position < br.BaseStream.Length) { list.Add((T)Convert.ChangeType(br.ReadInt64(), typeof(T))); }                              while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadInt64(), typeof(T))); }
212                          }                          }
213                      }                      }
214                      break;                      break;
# Line 202  namespace RomCheater.Core Line 218  namespace RomCheater.Core
218                      {                      {
219                          using (BinaryReader br = new BinaryReader(ms))                          using (BinaryReader br = new BinaryReader(ms))
220                          {                          {
221                              while (br.BaseStream.Position < br.BaseStream.Length) { list.Add((T)Convert.ChangeType(br.ReadUInt64(), typeof(T))); }                              while (br.BaseStream.Position < br.BaseStream.Length) { if (cancelmethod.Invoke()) { break; } list.Add((T)Convert.ChangeType(br.ReadUInt64(), typeof(T))); }
222                          }                          }
223                      }                      }
224                      break;                      break;

Legend:
Removed from v.531  
changed lines
  Added in v.532

  ViewVC Help
Powered by ViewVC 1.1.22