Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразование буквенного кода в числовое [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо