IK>> символов, просто есть процедуры и функции работающие с ним как со
IK>> строкой, но мне кажеться, BlockWrite в их число не входит.
KN> Согл. но writefile_ом не хочу =(
Соответственно, надо тогда указывать: pchar_var^, размер блока в еденицу, и
писать: BlockWrite(F,pchar_var^,size); Размер же придётся вычислить.
IK>> "нулевого символа" в одном из 255 байт динамической строки - всё
IK>> остальное по любому урезанно.
KN> хм :-\
KN> чего то мне тут не нравится
Ты давай ближе к конкретике, что делаешь - что за задача, а мы уже тогда
посоветуем чего-нибудь.
KN> А вот как насчет: тк ет указатель... есть идея попробовать посабирать
KN> асмом с памяти некоторые символы до 0х00 и все ето в норм. стринг. А
KN> ето уже врайтлном или тем же блокврайтом... а? проблема в том... что
KN> под винь я в асме не писал. также как и в досе примерно? аль?
Hе заморачивайся, в модуле Strings - всё есть:
function StrPas(str: PChar): String;
function StrLen(str: PChar): Longint;
Проблема в том, что обычная строка HЕ БОЛЕЕ 255 символов, а PChar - скоко
хошь.
Соответсвтвенно, если тебе просто надо PChar записать в файл, то будет
примерно так (при размере блока в еденицу):
BlockWrite(F,pchar_var^,StrLen(PChar_var)+1); - наличие нулевого символа
проверяй сам.
Можешь также переопределить процедуру BlockWrite, что бы она узнала тип PChar,
то есть обернуть эту строчку в процедуру с обычным вызовом. И для Reset/Rewrite
тоже надо будет сделать Overload :-)
КИА