serzh82saratov пишет:Это значит совсем ничего
Ну, тогда капец.
Пробовал RawRead, но ничего не вышло.
Без конкретики могу только посочувствовать.
Кстати не понял почему Loop, Read читает файл в отличии от FileRead?
Не знаю, это надо смотреть в исходники АНК. Видимо, просто ищет символы перевода строки и считывает то, что между ними. Если там нет нулевых байтов, то всё должно считаться, по идее.
NumPut я так понял пишет данные в указанный байт A_Index - 1. А что за параметр UChar? Разве можно цифру записать по разному?
Она пишет в buf по смещению от его начала на A_Index-1 байтов. Число можно записать по-разному. Если как байт, то это 8 бит займёт в памяти, если как слово (Short, UShort), то 16 бит; если как двойное слово (Int, UInt), то 32 бита, и т.д. Как байт можно записать числа от 0 до 255, т.к. возможных комбинаций из 8 бит, каждый из которых может иметь два значения (0 и 1) — только 256 (2 в 8-й степени).
Вы понимаете разницу между цифрой и числом? Число — это количество чего-то. Цифра — строковый символ, она обозначает число. Одно и то же число можно обозначить разными цифрами или вообще словами: 255, FF, 11111111, двести пятьдесят пять. Так вот, строка D0=92=D0=BE=D0=BB=D0=BE=D0=B4=D1=8C=D1=8F состоит из обозначений чисел. Их нужно перевести в сами числа величиной в байт, чтобы получить строку UTF-8, которую потом прочитать через StrGet .
Если в строке вы видите символ 5, это не значит, что в памяти на этом месте байт со значением 5. Что там реально соответствует этому символу, зависит от кодировки. Этот символ обозначает число 5, а не является им. Чтобы в памяти реально было число 5, нужно использовать NumPut, которая берёт значение символа (а не код символа) и пишет его в память уже непосредственно в бинарном виде.
Строго говоря, число в памяти — это тоже одно из возможных представлений числа, но это то представление, которое понятно процессору, в отличие от символа 5, который понятен человеку.