delphi Код:
i := 2; //i=2
if ReadD(i) = 380 then {S1_PURCHASED_S3_S2_s} //i=6
begin
i := i + 2*4; //i = 14
name := ReadS(i);
все ReadX при передаче им переменной смещают переменную на длинну прочитаного значения.
после ReadD(i) в твоем случае i будет равен 2(инициализировано) + 4(ReadD)
Добавлено через 1 минуту
ничего не мешает тебе использовать
if ReadD(2) = .....
а вот со строками, если требуеться читать чтото "за ними" так не получится. ибо никто не знает какой длинны строка может быть. тут - использовать переменные.