日期:2014-05-17 浏览次数:20866 次
private List<Track> GetTrackList(string trackListUrl)
{
List<track> list = new List<track>();
FileStream file = new FileStream(trackListUrl, FileMode.Open, FileAccess.ReadWrite);
int b = Marshal.SizeOf(typeof(s_NV_FILEHEAD));
byte[] buffer = new byte[b];
file.Read(buffer, 0, b);
s_NV_FILEHEAD gpsHead = (s_NV_FILEHEAD)RawDeserialize(buffer, typeof(s_NV_FILEHEAD));
byte[] bytData = new byte[Marshal.SizeOf(typeof(s_NV_All))];
List<s_NV_All> s = new List<s_NV_All>();
while (file.Read(bytData, 0, bytData.Length) > 0)
{
s_NV_GPS_All all = (s_NV_All)RawDeserialize(bytData, typeof(s_NV_All));
Track a = new Track
{
Time = all.szTime
};
list.Add(a);
}
file.Close();
return list;
}
private object RawDeserialize(byte[] rawdatas, Type anytype)
{
int rawsize = Marshal.SizeOf(anytype);
if (rawsize > rawdatas.Length)
return null;
IntPtr buffer = Marshal.AllocHGlobal(rawsize);
Marshal.Copy(rawdatas, 0, buffer, rawsize);
object retobj = Marshal.PtrToStructure(buffer, anytype);
&