![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование буквенного кода в числовое [D7, XP]
graf © (2006-08-30 11:55:00)Есть функция которая преобразует числовой код FourCC в буквенный:
Function FourCCToString(lFourCC : DWORD): String;
var
sRet : String;
lUByte : DWORD;
begin
sRet := Chr(lFourCC And $FF);
sRet := sRet + Chr((lFourCC And $FF00) div $100);
sRet := sRet + Chr((lFourCC And $FF0000) div $10000);
lUByte := (lFourCC And $7F000000) div $1000000;
if (lFourCC And $80000000) = $80000000 then
lUByte := lUByte or $80;
sRet := sRet + Chr(lUbyte);
FourCCToString := sRet;
end;
а мне нужно наоборот из буквенного в числовой, нет ли у кого кода такой процедуры, или готовой програмки. Если есть, киньте пожалуйста ссылку.
graf (2006-08-30 13:08:00) [1]
> Dmitrij_K
благодарю
Dmitrij_K (2006-08-30 12:28:00) [2]А это ваще изврат Ж)
Function FourCCToString(lFourCC : DWORD): String;
begin
setlength(result, 4);
DWORD((@result[1])^) := lFourCC;
end
Function StringToFourCC(lStr : String): DWORD;
begin
Result := DWORD((@lStr[1])^);
end;
Dmitrij_K (2006-08-30 12:26:00) [3]
Function FourCCToString(lFourCC : DWORD): String;
begin
setlength(result, 4);
result[1] := Chr(LongRec(lFourCC).Bytes[0]);
result[2] := Chr(LongRec(lFourCC).Bytes[1]);
result[3] := Chr(LongRec(lFourCC).Bytes[2]);
result[4] := Chr(LongRec(lFourCC).Bytes[3]);
end;
Function StringToFourCC(lStr : String): DWORD;
begin
LongRec(Result).Bytes[0] := Ord(lStr[1]);
LongRec(Result).Bytes[1] := Ord(lStr[2]);
LongRec(Result).Bytes[2] := Ord(lStr[3]);
LongRec(Result).Bytes[3] := Ord(lStr[4]);
end;
Dmitrij_K (2006-08-30 12:21:00) [4]
Function FourCCToString(lFourCC : DWORD): String;
begin
setlength(result, 4);
move(lFourCC, result[1], 4);
end;
Function StringToFourCC(lStr : String): DWORD;
begin
move(lStr[1], result, 4);
end;