У меня есть код, который использует ReadStr и WriteStr для того, что я полагаю, записывает строку в двоичный файл.
Объяснение WriteStr в документации гласит, что необработанные данные будут записываться в форме AnsiString в поток объекта, что имеет смысл. Но потом ReadStr говорит, что читает символ. Так разве они не противоположны друг другу?
Допустим, у меня есть,
pName: String[80];
и я использую WriteStr на нем, что он на самом деле пишет? Поскольку WriteStr ожидает AnsiString, приводит ли он pName к такому типу? В этом случае не записывает ли он поле «Длина» в поток, потому что указатель AnsiString указывает на первый элемент, а не на поле длины? Я также искал, и в наши дни кажется, что String == AnsiString, но мой вопрос о поле длины остается прежним.
Если, допустим, он не записывает поле «Длина» в файл, он по-прежнему записывает NULL в конце данных? Таким образом, могу ли я найти, где заканчивается строка, ища «\ 0»? Читает ли ReadStr до символа NULL?
Спасибо любезно :)
TWriter.WriteStr
иTReader.ReadStr
? Они помечены как предназначенные только для внутреннего использования. - person LU RD   schedule 19.06.2013ReadStr
?ReadStr
? - person OnTheFly   schedule 19.06.2013