Sergey_Demchuk
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Ка бы то покрасивее сделать? Код: var AktDay,AktMonth,AktYear: String; Temp, IntDay, IntMonth, IntYear, HexDay, Maska, HexDataDay : String; REG : TRegistry; Buf: array[0..255] of Char; Temping: Char; ... IntDay:=IntToBin('27',8) .... HexDataDay:= BinToHex (IntDay); FillChar(Buf, SizeOf(Buf), 0); reg:=TRegistry.Create; reg.RootKey:=HKEY_LOCAL_MACHINE; reg.OpenKey('SYSTEM\CurrentControlSet\Data', false); REG.ReadBinaryData('Data', Buf, SizeOf(Buf)); ii:=1; for ii:=1 to 255 do begin if ((Buf[ii]=#$00) and (Buf[ii+1]=#$00) and (Buf[ii+2]=#$FA)) then Buf[ii+3]:=HexDataDay; //buf[7]:=#$E9; end; | Переменные Buf и HexDataDay разных типов (Char и String), поэтому Buf[ii+3]:=HexDataDay работать не будет, как проще поступить, чтобы присвоить переменной Buf[ii+3] значение переменной HexDataDay, которое в строковом виде хранит HEX значение чисда '27' (эта цифра - текущее число дня месяца и постоянно меняется). REG.WriteBinaryData('Data', Buf, SizeOf(Buf)); reg.CloseKey; reg.Free; |