Показать сообщение отдельно
  #4  
Старый 27.07.2021, 21:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

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;
Чтение в обратном порядке.
Принцип записи массивв - сначала пишем кол-во элементов, потом сами элементы.
Ответить с цитированием