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

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

Как поделить Cardinal на Integer ? [D7, WinXP]


Страницы:   1 2

Фёдор Мегатронов ©   (2004-08-27 23:36:00) 

Вот возвращает мне одна функция тип Cadrinal(DWORD)

(dwBuffer : DWORD)

мне его надо поделить на 1024 (чирбы байты превести в килобайты)

и вывести на форму...

IS := integer(@dwBuffer); на него не дайствует. IS я всё равно не могу поделить на 1024, хоть ты убейся. а мне надо .. подскажите пожалуйста


GrayFace   (2004-08-31 16:58:00) [1]

Фёдор Мегатронов   (29.08.04 0:32) [14]
function HttpQueryInfo(hRequest: HINTERNET;
                     dwInfoLevel: DWORD;
                     lpvBuffer: Pointer;
                     var lpdwBufferLength: DWORD;
                     var lpdwReserved: DWORD): BOOL; stdcall;


var Buffer:integer;
if HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH, @Buffer, dwBufferLen, dwIndex)
then
 begin
  Temp := IntToStr(dwBuffer);
 end;

Может быть так:

var Buffer:string;
SetLength(Buffer,255);
if HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH, @Buffer, length(Buffer), dwIndex)
then
 begin
   Temp := Buffer;
 end;


begin...end   (2004-08-29 14:27:00) [2]


> [31] KSergey ©   (29.08.04 13:25)


> Не, ну бывает полезно посмотреть на реальный пример

В том то и дело, что в справке по ссылочке Exampleлегко можно найти реальный пример использования GetMem :-)


Фёдор Мегатронов   (2004-08-29 14:02:00) [3]

KSergey

как не странно, я нашел не один пример использования ЭТОЙ функции, но ни один из них корректно не работает. адрес яндекса я знаю.

Ну не работает оно так 8) ... чего у меня нет такого что есть у них ? я делал и так как там точ в точ и ещё много примеров видел. нигде не работает.


KSergey   (2004-08-29 13:25:00) [4]

> [30] begin...end ©   (29.08.04 13:20)
> Тут даже Яндекс не нужен. Достаточно в справку посмотреть.

Не, ну бывает полезно посмотреть на реальный пример, особенно когда что-то недогоняешь.

Но, боюсь, вы ему сейчас все расскажете. Впрочем, будет на эту ветку ссылаться как на справочник по всем ф-циям по-русски ;)


begin...end   (2004-08-29 13:20:00) [5]


> [28] Фёдор Мегатронов   (29.08.04 13:10)

После GetMem() указатель будет указывать на начало области памяти, которую ты можешь использовать (размер её ты также указываешь в GetMem).
Перед вызовом GetMem() указатель тоже на что-то указывает, но не на то, что тебе надо.

> [29] KSergey ©   (29.08.04 13:17)

Тут даже Яндекс не нужен. Достаточно в справку посмотреть.


KSergey   (2004-08-29 13:17:00) [6]

2 Фёдор Мегатронов

Ты адрес яндекса знаешь? Подсказать?
За 5 минут нашелся пример использования этой ф-ции
http://www.extractor.ru/forum/posting.php?mode=quote&p=2030&sid=72aa58724f5e1c924a1b4a734c2ea050

PS
Люди, надо что-то с кладовкой решать... Досадно в яндексе на 2-3 месте видеть ссылку на местную кладовку - но, увы, не иметь туда доступа..
По сегодняшним вопросам уже 2 ссылки в яндексе на кладовку было...


Фёдор Мегатронов   (2004-08-29 13:10:00) [7]

тоесть это как-бы инициализация ? и её надо вызывать до использования указателя?


GuAV   (2004-08-29 12:39:00) [8]

getmem выделяет память в указанном объёме и возвращает в указатель (первый параметр).


Фёдор Мегатронов   (2004-08-29 12:28:00) [9]

@_@

можешь обьяснить что за функция getmem ? и куда она возвращает результат и какого типа


GuAV   (2004-08-29 01:50:00) [10]

getmem(dwbuffer, dwbufferlen);
dwbuffer - PChar


Фёдор Мегатронов   (2004-08-29 01:41:00) [11]

я понимаю что dwBufferLen - это сколько памяти надо выделить.

я не понял как использовать твой getmem...


GuAV   (2004-08-29 01:35:00) [12]


> getmem(dwbuffer, dwbufferlen)

dwbufferlen - это сколько dwbufferlen - скока памяти выделить под результат.

потом присвой строке этот pchar.


Фёдор Мегатронов   (2004-08-29 01:27:00) [13]

getmem как использовать ?


GuAV   (2004-08-29 01:19:00) [14]


> PChar(@dwBuffer).

может объяви буфер как pchar, сделай getmem(dwbuffer, dwbufferlen) bufferlen посиавь побольше...


Фёдор Мегатронов   (2004-08-29 01:15:00) [15]

Результат (по MSDNу) - это Булево значение, которые показывает прошли ли функция или нет. по этому я её через IF и вызываю.

попробывал с New(dwBuffer)

он мне вернул 9916608

чёрт .. у меня крыша едет...

я в одном факе видел использование этой функции. там было как PChar(@dwBuffer).

ещё правдо есть функция InternetQueryDataAvailable. но она берёт информацию из заголовков .. которая не всегда верная, точнее всегда не верная , поэтому я хочу использовать именно функцию HttpQueryInfo, хотя у меня закралось подозрение, что она тоже из хэадеров берёт размер файла...


GuAV   (2004-08-29 01:02:00) [16]

А уверен, что в dwBuffer возвращает, может в результат?
и попробуй ещё перед вызовом New(dwBuffer);


Фёдор Мегатронов   (2004-08-29 00:58:00) [17]

да, конечно.


GuAV   (2004-08-29 00:54:00) [18]

Хм.. @ перед dwBufer убрал ?


Фёдор Мегатронов   (2004-08-29 00:52:00) [19]

вывалился с исключением EAccess Violation и показал на эту строчку Temp:=dwBuffer^;


GuAV   (2004-08-29 00:48:00) [20]

Попробуй объявить у себя как dwBuffer: PInteger, а читать Temp:=dwBuffer^;


Страницы:   1 2

Наверх

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