lordvampir
Premium
- Joined
- Dec 9, 2010
- Messages
- 35
- Reaction score
- 10
есть такая задача (с подобной задачей я встречаюсь впервые, поэтому нахожусь в ступоре ). существует такое абстрактное понятие, как "поток данных". это может быть как простой string или UnicodeString/AnsiString, а так же array of char, или же вообще array of byte или даже array of integer (cardinal/word/etc); да в общем всё, что похоже на один из приведённых вариантов. необходимо определить какой размер (в байтах) или (хотя бы) какой базовый тип (byte/integer/word/char/etc) имеет базовый элемент этого потока. заголовок функции имеет примерно такой вид: function MyFunc(Data: Pointer): Byte; в эту функцию передаётся сам поток данных, результатом является размер элемента.
примеры:
если передаётся UnicodeString, результат будет 2 (символ в этой строке имеет размер 2 байта)
если - AnsiString, результат - 1
если - array of byte, результат - 1
если - array of integer, результат - 4
etc
создавать множество overload-функций не хотелось бы, так как тип потока может быть совершенно не предсказуемый, а количество вариантов достаточно много; ограничивать в выборе так же не хотелось бы...
заранее спасибо
примеры:
если передаётся UnicodeString, результат будет 2 (символ в этой строке имеет размер 2 байта)
если - AnsiString, результат - 1
если - array of byte, результат - 1
если - array of integer, результат - 4
etc
создавать множество overload-функций не хотелось бы, так как тип потока может быть совершенно не предсказуемый, а количество вариантов достаточно много; ограничивать в выборе так же не хотелось бы...
заранее спасибо