Конференция "Начинающим" » файлы в памяти
 
  • lima200 (21.04.17 23:37) [0]
    Есть некий типизированный файл и работа с ним, вида (пишу по памяти, могут быть небольшие ошибки):
    ...
    Type
    TMyFile=packed record
    id:integer;
    name:widestring;
    //<..еще что-то..>
    end;
    Var F:File of TMyFile; R:TMyFile; I:Integer;
    ...
    Begin
    Assignfile(F,'d:\test.my');Rewrite(f);
    For I:=1 to 100 do begin
    R.Id:=Random(1000);
    R.Name:='Test '+IntToStr(I);
    //<...> в таком стиле
    WriteLn(F,R); // попутно вопрос - ..Ln надо или нет?
    end;
    CloseFile(F);
    // в таком же стиле чтение обратно
    End;
    ...



    Вопросы:
    1. Действия выше происходят с файлом на диске. Как тоже-самое организовать в участке памяти? Т.е. нужно все тоже самое, только F должен быть файл в памяти. В примере пишется 100 записей. А если надо 5-6 Гб?
    2. Это реально сделать?
    3. Какие ограничения, если "да"
    4. Где об этом почитать?

    D10, Starter

    Спасибо, надеюсь понятно
  • Kilkennycat © (22.04.17 01:19) [1]

    > Как тоже-самое организовать в участке памяти?

    Assignfile(F,'d:\test.my') в памяти реализовать нельзя, в ней нет диска d

    > А если надо 5-6 Гб?

    x64


    > Это реально сделать?

    да, можно эмулировать диск d в памяти

    >  Какие ограничения, если "да"

    нужно иметь знания, а исходя из "WriteLn(F,R); // попутно вопрос - ..Ln надо или нет?" их нет ваще.

    >  Где об этом почитать?

    Стив Тейксейра, Ксавье Пачеко Delphi. Читать от и до, в том числе вступление, посвящение и пр.
Есть новые Нет новых   [118428   +11][b:0][p:0.001]