ok, i can see that this is an assignment, but i'm gonna help you abit here.
the record is made of a 20bytes long name, and an integer grade.
let's take a look at the first record
the names are shorter than 20bytes, that's why the names are padded with enough Ì
until it reaches 20 bytes.
in this record: A.smith has 6 letters, one dot, one whitespace, then it should be padded with 12 Ìs
after the name comes the integer grade, if you look at the file with a hex editor you will see:
the letter Y
is actually the value 0x59
, convert it to decimal, it's actually 89
the grade of a.smith, this integer isn't stored in a fixed length, so you can use the standard extraction methods to extract it.
after the integer we can notice a white space to separate records.