Конференция "KOL" » побайтно записать файл из массива [Delphi]
 
  • tippa (11.12.09 18:27) [0]
    есть массив паскаль кода некоторого файла:

    fff: array[0..132067] of byte = ($6D, $4A, $70, $00, ... );



    нужно записать его в поток
    делаю так:

    strem:=NewReadWriteFileStream('proga.exe');//создал поток
    strem.???(fff,132068);

    //не нашёл подходящего метода

    в VCL работает strem.write(fff,132068).
  • Слон (11.12.09 20:15) [1]
    .write
  • tippa (11.12.09 21:42) [2]
    сразу так и делал, но пишет
    Constant object cannot be passed as var parameter.


    мол не может константа использоваться как переменная
  • tippa (11.12.09 22:19) [3]
    причем если массив не делать константой, а задавать посимвольно, то все окей, но у меня 100 килобайтный файлик...
  • Дмитрий К © (11.12.09 22:27) [4]
    Stream.Write(Pointer(@fff)^,...
  • tippa (11.12.09 22:51) [5]
    да вы тут прям волшебники, все заработало
  • Dufa © (12.12.09 15:17) [6]
    Можно просто fff[0]
  • tippa (12.12.09 20:10) [7]

    > Можно просто fff[0]

    если так
    strem.Write(fff[0],132068);


    то не пашет, опять:
    Constant object cannot be passed as var parameter.

  • L'Autour (12.12.09 21:08) [8]
    @fff[0]
  • tippa (13.12.09 12:02) [9]

    var ucaz_fff: ^byte;
    ...
    ucaz_fff:=@fff[0];
    ...
    strem.Write(ucaz_fff,132068);

  • tippa (13.12.09 12:40) [10]
    блин, вообщем чушь какая-то пишется в поток, вернулся на
    > Stream.Write(Pointer(@fff)^,...
  • L'Autour (13.12.09 17:03) [11]
    сорри: @fff[0]^, что по сути тот же Pointer(@fff)^

    и еще, если используется
    var ucaz_fff: ^byte;
    то следует писать:
    strem.Write(ucaz_fff^,132068);
 
Конференция "KOL" » побайтно записать файл из массива [Delphi]
Есть новые Нет новых   [134431   +12][b:0][p:0.001]