Советы по Delphi. Версия 1.0.6
Шрифт:
Разработчик Delphi
Русскоязычные
N | Сервер | Описание |
---|---|---|
1 | http://www.inprise.ru Российское представительство Inprise | Фирма – разработчик Delphi |
Англоязычные
N | Сервер | Описание |
---|---|---|
1 | http://www.inprise.com Inprise | Фирма – разработчик Delphi |
Сайты,
Англоязычные
N | Сервер | Описание |
---|---|---|
1 | http://sunsite.icm.edu.pl/delphi Delphi Super Page | Самая большая в мире коллекция компонентов для всех продуктов фирмы Borland. |
Пиратские сайты
Русскоязычные
N | Сервер | Описание |
---|---|---|
1 | http://delphi4.da.ru KiraSoft Warez Page | Delphi distr, DB Aware, Communication, General, Reports, Experts, Misc, Tools, Links |
2 | www.audit.kharkov.com/barry/Delphi Barry's Delphi Page | VCL's, VCL packs, Help Design, FAQ's, IB DataBase, Utilities, Forum |
Другие
N | Сервер | Описание |
---|---|---|
1 | http://www.netease.com/~dce Delphi Components Crack (with Dr.Dai) | Как там написано, "Following components ONLY for Delphi 3.0", остальное понять трудно, как и идентифицировать родной язык автора сайта, хотя по скриншотам разобраться что и где лежит вполне можно |
Домашние страницы
Русскоязычные
N | Сервер | Описание |
---|---|---|
1 | http://www.ph.usmga.ru/lexa Delphi Russian Suite | Сайт, посвященный программированию на Дельфи. Автор страницы Алексей Спицын. Можно скачать документацию по Дельфи (в том числе и на русском языке). Есть список ссылок на страницы в интернете, посвященные Дельфи, а также на адреса электронных версий компьютерных журналов. |
Алгоритмы
Преобразования
HEX→Integer
Решение 1
var
i: integer;
s: string;
begin
s:= '$' + ThatHexString;
i:= StrToInt(a);
end;
Решение 2
CONST HEX: ARRAY['A'..'F'] OF INTEGER = (10,11,12,13,14,15);
VAR str : String;
Int, i: integer;
BEGIN
READLN(str);
Int:= 0;
FOR i:= 1 TO length(str) DO
IF str[i] < 'a' THEN Int:= Int * 16 + ord(str[i]) – 48
ELSE Int:= Int * 16 + hex[str[i]];
WRITELN(Int);
READLN;
END.
Преобразование десятичного числа в шестнадцатиричное
Самое
простое преобразование – через строку.HexString:= Format('%0x', DecValue);
Преобразование ASCII в шестнадцатиричное представление
Строка представляет собой массив байтов в виде ASCII-символов. Необходимо организовать преобразование типов по аналогии с Delphi-функциями Ord и Chr.
Функция BytesToHexStr преобразует, к примеру, набор байтов [0,1,1,0] в строку '30313130', HexStrToBytes выполнит обратное преобразование.
unit Hexstr;
interface
uses String16, SysUtils;
Type
PByte = ^BYTE;
procedure BytesToHexstr(var hHexStr: String; pbyteArray: PByte; InputLength: WORD);
procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);
procedure HexBytesToChar(var Response: String; hexbytes: PChar; InputLength: WORD);
implementation
procedure BytesToHexStr(var hHexStr: String; pbyteArray: PByte; InputLength: WORD);
Const
HexChars : Array[0..15] of char = '0123456789ABCDEF';
var
i, j: WORD;
begin
SetLength(hHexStr, (InputLength * 2));
FillChar(hHexStr, sizeof(hHexStr), #0);
j:= 1;
for i := 1 to InputLength do begin
hHexStr[j]:= Char(HexChars[pbyteArray^ shr 4]); inc(j);
hHexStr[j]:= Char(HexChars[pbyteArray^ and 15]); inc(j);
inc(pbyteArray);
end;
end;
procedure HexBytesToChar(var Response: String; hexbytes: PChar; InputLength: WORD);
var
i: WORD;
c: byte;
begin
SetLength(Response, InputLength);
FillChar(Response, SizeOf(Response), #0);
for i:= 0 to (InputLength – 1) do begin
c:= BYTE(HexBytes[i]) And BYTE($f);
if c > 9 then Inc(c, $37)
else Inc(c, $30);
Response[i + 1]:= char(c);
end;{for}
end;
procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);
{pbyteArray указывает на область памяти, хранящей результаты}
var
i, j: WORD;
tempPtr: PChar;
twoDigits: String[2];
begin
tempPtr:= pbyteArray;
j:= 1;
for i:= 1 to (Length(hHexStr) DIV 2) do begin
twoDigits:= Copy(hHexStr, j, 2); Inc(j, 2);
PByte(tempPtr)^:= StrToInt('$' + twoDigits); Inc(tempPtr);
end;{for}
end;
end.
UNIT string16.
interface
{$IFNDEF Win32}
Поделиться с друзьями: