Ejemplo n.º 1
0
        static bool CheckMagicOne(Stream stream, SimpleMagicRecord rec, int offset)
        {
            stream.Position = rec.Offset + offset;
            string key = rec.Key;
            int    len = rec.Length;

            if (len == -1)
            {
                len = key.Length;
            }
            for (int i = 0; i < len; i++)
            {
                int n = stream.ReadByte();
                if (n == -1)
                {
                    return(false);
                }
                if (n != key[i])
                {
                    return(false);
                }
            }
            if (rec.ExtraCheck != null)
            {
                stream.Position = rec.Offset + offset;
                return(rec.ExtraCheck(stream));
            }
            else
            {
                return(true);
            }
        }
Ejemplo n.º 2
0
        static FileIDResult Test_Simple(IdentifyJob job, FileIDType type, SimpleMagicRecord magic)
        {
            var ret = new FileIDResult(type);

            if (CheckMagic(job.Stream, magic))
            {
                return(new FileIDResult(type, 100));
            }
            else
            {
                return(new FileIDResult());
            }
        }
Ejemplo n.º 3
0
 static bool CheckMagic(Stream stream, SimpleMagicRecord rec, params int[] offsets)
 {
     return(CheckMagic(stream, new SimpleMagicRecord[] { rec }, offsets));
 }