![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
pbyte
Vasa777 © (2013-07-20 00:16:00)x,Len:integer;pbData:pbyte;st,st1:tfilestream;a1,a2:byte;
..
len:=1024;
repeat
x:=st.Read(pbData^,Len);
..
// как вот тут в начало pbData вставить a1, а в конец a2?
..
st1.Write(pbData^,Len+2);
until ..
Vasa777 (2013-07-20 02:03:00) [1]набрел вот http://www.delphipages.com/forum/showthread.php?t=148288
и http://stackoverflow.com/questions/15388183/widechar-to-bytes
завтра уже читать буду, ща спать хочу..
RWolf (2013-07-20 02:01:00) [2]нет таких функций.
Vasa777 (2013-07-20 01:53:00) [3]нет ли каких нибудь вставлятельных функций стандартных? не хочется с промежуточным буфером связываться..
Vasa777 (2013-07-20 01:51:00) [4]тогда кучу других функций придется менять, а они все с pbyte работают там в промежутке, до записи. и если с a2 как бы можно просто в конец дописать, то вот с a1 проблема
RWolf (2013-07-20 01:48:00) [5]проще всего выкинуть байты и буферы, разместить данные в AnsiChar/RawByteString, а затем складывать их как угодно.
Vasa777 (2013-07-20 01:47:00) [6]до repeat выделен буфер getmem(pbdata,len+2);
Vasa777 (2013-07-20 01:44:00) [7]++ и st1.write(a1,1);st1.Write(pbData^,x);st1.write(a2,1);
тоже не катит. нужно вставить именно в pbData до ее записи в st1
Vasa777 (2013-07-20 01:40:00) [8]мне не в файл надо вставлять (ну в конечном итоге в него, st1 открыт на запись), а в то куда данные считываются.
я же могу обращатся к конкретным байтам как pbdata[0..len-1].
чтобы было как в строках Insert(a1,pbdata,0) и Insert(a2,pbdata,length(pbdata))
RWolf (2013-07-20 01:40:00) [9][1] выше не читаем, торможу на ночь глядя.
не надо ничего вставлять в буфер, просто пишем в поток a1, потом pbData и a2.
RWolf (2013-07-20 01:34:00) [10]никак, в файл нельзя вставлять, можно только дописывать и перезаписывать.
если надо вставить в начало, придётся считать и перезаписать весь файл.