Nope. That's the part of part of his problems... He is using the wrong string type in a record and then tries to load/save: then you get pointers, not strings.
First look here:
https://www.tutorialspoint.com/pascal/pascal_files_handling.htmThen try this and complete it:
This should help him a little, because this record can be load/saved from disk....(w/o jumping through hoops, of course it is possible):
{$ifdef fpc}{$mode delphi}{$H+}{$I-}{$endif}
//BBS Wide User Record Info
type
TuserRecord = packed record
firstname, lastname, handle, password, datejoined, email, affils, fromwhere, status, bbssysop, bbsname, lastcall, notes: string[255];// fixed length string...Now find out how much you actually use per individual string
seclevel: integer;
end;
Var
logged_in_user_record : TuserRecord;
procedure load_user_record(var sHandleGiven);
Begin
//
end;
//Main Program Code
Begin
end.
That's lesson 1: don't store things in strings, store in native types. Or in a real database. Strings are for representation, not always for storage... Fixed length strings are OK, but take up more space and are limited to 255 chars.
TuserRecord = packed record
firstname:string[20];
lastname:string[50]
handle:dword;
password:array[0..39] of byte;
datejoined:TDateTime;
.....
end;
Actually he should use something like SQlite for this task..... But that is far fetched at the moment.
Note the wiki is really, is really bad on file of record. I almost deleted everything, but instead I will bring more sense to it.