コード例 #1
0
        private IEnumerable <Sezam.Data.EF.User> ReadUsers()
        {
            int    count         = 0;
            int    inactiveCount = 0;
            string userFile      = Path.Combine(rootPath.FullName, "user.dat");

            using (BinaryReader r = new BinaryReader(File.Open(userFile, FileMode.Open)))
            {
                // int deletedCount = 0;
                while (r.PeekChar() != -1)
                {
                    var user = new Sezam.Data.EF.User(count > 0 ? count : 99999);
                    user.Read(r);

                    Console.WriteLine($"{user.Username,-16} {user.FullName,-28} {user.City,-16} {user.LastCall:dd MMM yyyy HH:mm}");

                    count++;
                    if (!user.LastCall.HasValue)
                    {
                        inactiveCount++;
                    }

                    yield return(user);
                }
            }
            Debug.WriteLine("Read {0} users, {1} inactive.", count, inactiveCount);
        }
コード例 #2
0
        public static void Read(this Sezam.Data.EF.User u, BinaryReader r)
        {
            u.Username = r.ReadShortString(15);

            _               = r.ReadChar(); // gender
            u.FullName      = r.ReadShortString(30);
            u.StreetAddress = r.ReadShortString(35);
            u.PostCode      = r.ReadShortString(5);
            u.City          = r.ReadShortString(16);
            u.AreaCode      = r.ReadShortString(4);
            u.Phone         = r.ReadShortString(10);
            u.Company       = r.ReadShortString(30);
            u.DateOfBirth   = r.ReadShortDate();
            u.MemberSince   = r.ReadDosTime();
            _               = r.ReadBytes(10);

            u.LastCall  = r.ReadDosTime();
            _           = r.ReadInt32(); // DayTime ?
            u.PaidUntil = r.ReadShortDate();

            r.ReadBytes(13 * 4 + 16 + 5 * 4 + 14 + 16 + 18);
        }