Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

никак, в файл нельзя вставлять, можно только дописывать и перезаписывать.
если надо вставить в начало, придётся считать и перезаписать весь файл.


Наверх

Титульная страница Поиск, карта сайта Написать письмо