Re: Считывание объявлений
Добавлено: 08:00, 22.04.2012
И еще как можно сделать ссылку к объявлению, зная ID?
Тут не ID объявления.. а что-то другое..
Тут не ID объявления.. а что-то другое..
fTextToAnsiString(IntToHex(cID,0))Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
Зачем получать ID, если его уже не существует? Могли бы хоть информацию прикрепить какую-нибудь. Допустим нужно было узнать какое объявление было удалено, хотя бы его название. Ищем по всем объявлениям данный ИД, но его нету, так как объявления удалено.Удаление объявления
ID: 1102
Блок данных: число(ID объявления)
Полученное значение нужно перевернуть. Например, если в хексе FFEEDDCC, то надо инвертировать в CCDDEEFF.leonbratsk писал(а):fTextToAnsiString(IntToHex(cID,0))Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?
function IDbulletin(nomer: integer): string;
var
obrabotka: string;
k:integer;
begin
obrabotka:=InttoHex(nomer,0);
for k := 1 to 4 do
begin
Result:=Copy(obrabotka,k*2-1,2)+Result;
end;
Хорошо, расширим информативность в сл. версии.leonbratsk писал(а):fTextToAnsiString(IntToHex(cID,0))Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?
И второй момент, который я заметил недавно.Зачем получать ID, если его уже не существует? Могли бы хоть информацию прикрепить какую-нибудь. Допустим нужно было узнать какое объявление было удалено, хотя бы его название. Ищем по всем объявлениям данный ИД, но его нету, так как объявления удалено.Удаление объявления
ID: 1102
Блок данных: число(ID объявления)
В итоге, что бы узнать какое объявление было удалено нужно при создании объявления сохранять где-то информацию о нем, а при удалении объявления вытягивать её от туда и стирать это информацию.
Гораздо эффективнее было бы развернуть байты в Nomer перед конвертацией в строкуleonbratsk писал(а):Спасибо все заработало. Выложу код, может кому-то потребуется.function IDbulletin(nomer: integer): string;
var
obrabotka: string;
k:integer;
begin
obrabotka:=InttoHex(nomer,0);
for k := 1 to 4 do
begin
Result:=Copy(obrabotka,k*2-1,2)+Result;
end;
Код: Выделить всё
function IDbulletin(Nomer: integer): string;
var pNomer : PByte;
bTemp : Byte;
begin
pNomer := PByte(@Nomer);
bTemp := pNomer^;
pNomer^ := (pNomer+3)^;
(pNomer+3)^ := bTemp;
bTemp := (pNomer+1)^;
(pNomer+1)^ := (pNomer+2)^;
(pNomer+2)^ := bTemp;
Result := IntToHex(Nomer, 8);
end;