Страница 3 из 3

Re: Считывание объявлений

Добавлено: 08:00, 22.04.2012
leonbratsk
И еще как можно сделать ссылку к объявлению, зная ID?
Тут не ID объявления.. а что-то другое..

Re: Считывание объявлений

Добавлено: 09:10, 22.04.2012
Maxim Mirgorodsky
Это ID, только в 16-ричном виде (HEX).

Re: Считывание объявлений

Добавлено: 09:35, 22.04.2012
leonbratsk
Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
fTextToAnsiString(IntToHex(cID,0))
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?

И второй момент, который я заметил недавно.
Удаление объявления
ID: 1102
Блок данных: число(ID объявления)
Зачем получать ID, если его уже не существует? Могли бы хоть информацию прикрепить какую-нибудь. Допустим нужно было узнать какое объявление было удалено, хотя бы его название. Ищем по всем объявлениям данный ИД, но его нету, так как объявления удалено.
В итоге, что бы узнать какое объявление было удалено нужно при создании объявления сохранять где-то информацию о нем, а при удалении объявления вытягивать её от туда и стирать эту информацию.

Re: Считывание объявлений

Добавлено: 16:41, 23.04.2012
CrazyVirus
leonbratsk писал(а):
Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
fTextToAnsiString(IntToHex(cID,0))
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?
Полученное значение нужно перевернуть. :) Например, если в хексе FFEEDDCC, то надо инвертировать в CCDDEEFF.

Re: Считывание объявлений

Добавлено: 17:37, 23.04.2012
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;

Re: Считывание объявлений

Добавлено: 10:40, 24.04.2012
Maxim Mirgorodsky
leonbratsk писал(а):
Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
fTextToAnsiString(IntToHex(cID,0))
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?

И второй момент, который я заметил недавно.
Удаление объявления
ID: 1102
Блок данных: число(ID объявления)
Зачем получать ID, если его уже не существует? Могли бы хоть информацию прикрепить какую-нибудь. Допустим нужно было узнать какое объявление было удалено, хотя бы его название. Ищем по всем объявлениям данный ИД, но его нету, так как объявления удалено.
В итоге, что бы узнать какое объявление было удалено нужно при создании объявления сохранять где-то информацию о нем, а при удалении объявления вытягивать её от туда и стирать это информацию.
Хорошо, расширим информативность в сл. версии.

Re: Считывание объявлений

Добавлено: 19:41, 24.04.2012
-=SJ=-
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;
Гораздо эффективнее было бы развернуть байты в Nomer перед конвертацией в строку

Код: Выделить всё

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;