Map - это не файл. Это программный контейнер. Как ты его сохранишь в файл (и как будешь читать потом) - это уже твое дело. Можно, например, сохранять в бинарный файл.
Пусть не будем использовать стандарный контейнер, а используем "самописный":
Код:
type
TMapItem = record
B : Integer;
As : Array Of Integer
end;
var
dataFile : Array Of TMapItem;
procedure SaveMap(AFileName : String)
var
Stream : TFileStream;
C, I, J : Integer;
begin
Stream := TFileStream.Create(AFileName,foCreate);
Try
C := Length(dataFile);
Stream.WriteBuffer(C,sizeOf(Integer);
For I := Low(dataFile) To High(dataFile) Do
Begin
Stream.WriteBuffer(dataFile[i].B,SizeOf(Integer));
C := Length(dataFile[i].As);
Stream.WriteBuffer(C,SizeOf(Integer));
For J := Low(dataFile[i].As) To High(dataFile[i].As) Do
Stream.WriteBuffer(dataFile[i].As[J],SizeOf(Integer));
End;
Finally
Stream.Free;
End;
end;
Чтение в обратном порядке.
Принцип записи массивв - сначала пишем кол-во элементов, потом сами элементы.