-
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);