Тут не ID объявления.. а что-то другое..
Считывание объявлений
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
И еще как можно сделать ссылку к объявлению, зная ID?
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Считывание объявлений
Это ID, только в 16-ричном виде (HEX).
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
fTextToAnsiString(IntToHex(cID,0))Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?
И второй момент, который я заметил недавно.
Зачем получать ID, если его уже не существует? Могли бы хоть информацию прикрепить какую-нибудь. Допустим нужно было узнать какое объявление было удалено, хотя бы его название. Ищем по всем объявлениям данный ИД, но его нету, так как объявления удалено.Удаление объявления
ID: 1102
Блок данных: число(ID объявления)
В итоге, что бы узнать какое объявление было удалено нужно при создании объявления сохранять где-то информацию о нем, а при удалении объявления вытягивать её от туда и стирать эту информацию.
Последний раз редактировалось leonbratsk 10:46, 24.04.2012, всего редактировалось 2 раза.
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
- CrazyVirus
- Сообщения: 747
- Зарегистрирован: 13:40, 26.05.2007
Re: Считывание объявлений
Полученное значение нужно перевернуть.leonbratsk писал(а):fTextToAnsiString(IntToHex(cID,0))Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?

- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Спасибо все заработало. Выложу код, может кому-то потребуется.
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 10:45, 24.04.2012, всего редактировалось 1 раз.
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Считывание объявлений
Хорошо, расширим информативность в сл. версии.leonbratsk писал(а):fTextToAnsiString(IntToHex(cID,0))Maxim Mirgorodsky писал(а):Это ID, только в 16-ричном виде (HEX).
Пробовал. Пишет "Объявление не найдено."
Пробовал так же через калькулятор вручную переводить, имеет ли значение регистор?
И второй момент, который я заметил недавно.Зачем получать ID, если его уже не существует? Могли бы хоть информацию прикрепить какую-нибудь. Допустим нужно было узнать какое объявление было удалено, хотя бы его название. Ищем по всем объявлениям данный ИД, но его нету, так как объявления удалено.Удаление объявления
ID: 1102
Блок данных: число(ID объявления)
В итоге, что бы узнать какое объявление было удалено нужно при создании объявления сохранять где-то информацию о нем, а при удалении объявления вытягивать её от туда и стирать это информацию.
Re: Считывание объявлений
Гораздо эффективнее было бы развернуть байты в 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;