Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизКак быстро достать информацию по данному указателю ? Найти похожие ветки
← →
Фёдор Мегатронов (2004-08-04 23:01) [0]Вот есть у меня функция HttpQueryInfo ... с параметром HTTP_QUERY_CONTENT_LENGTH, чтобы она мне вернула размер файла.
Но она его возвращает в виде указателя (Pointer) , его она записывает в одну переменную...
вот. Как быстрее всего то число которое она на самом деле вернула (размер файла) вывести на форму в Label ??
← →
Palladin © (2004-08-05 01:43) [1]Чья функция твоя? Размер какого файла? С чего вдруг она возвращает какой то размер в виде указателя. Точнее с чего ты взял что это размер?
← →
KADAN © (2004-08-05 01:49) [2]Palladin прав
http://delphimaster.ru/vopros/index.html
← →
Бином Ньютоныч (2004-08-05 10:47) [3]StrToInt(PChar(lpvBuffer)). Если конечно речь идет о функции из wininet.dll.
← →
GrayFace © (2004-08-05 13:47) [4]Label1.Text:=PChar(lpvBuffer) если речь идет о том, о чем речь вел Бином Ньютоныч - возвращается строка.
Label1.Text:=IntToStr(PInt64(lpvBuffer)^) если возвращается число.
← →
GrayFace © (2004-08-05 14:12) [5]KADAN © (05.08.04 1:49) [2]
ИМХО, плохой рассказ.
← →
Фёдор Мегатронов (2004-08-05 16:51) [6]Я думал что эта функция вам известна ..
функция из библиотеки Wininet возвращает информацию о файле в инете (на пример дату создания или изменения ...) . Мне нужно с помощью неё узнать размер файла.
но буфер для возврата значения она требует чтобы был типа Pointer.
Попробую сделать как GrayFace сказал.
← →
Palladin © (2004-08-06 02:20) [7]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/httpqueryinfo.asp
← →
Фёдор Мегатронов (2004-08-06 23:11) [8]Label1.Text:=PChar(lpvBuffer) - когда делаещь так, то всё компилиться, но в место размера фаила - пустота.. тоесть лабел пуст ...
У меня так сделано
//ВТОРОЙ ПОТОК
var
TrueItemSize : Pointer;
Procedure ThreadClass.ItemSize;
begin
Form1.Label4.Caption := PChar(TrueItemSize);
end;
...
hSession := InternetOpen("ACF-GET",PRE_CONFIG_INTERNET_ACCESS, nil, nil, 0);
hURL := InternetOpenURL(hSession, PChar(Form2.Edit1.Text), nil, 0, 0, 0);
HttpQueryInfo(hUrl, HTTP_QUERY_CONTENT_LENGTH, TrueItemSize, dwBufferLen, dwIndex);
...
при выводе на форму - ничего не выводиться
← →
Тестировщица © (2004-08-07 07:05) [9]мдя...так попробуй...
var
TrueItemSize : DWORD;
....
HttpQueryInfo(hUrl, HTTP_QUERY_CONTENT_LENGTH, @TrueItemSize, dwBufferLen, dwIndex);
Procedure ThreadClass.ItemSize;
begin
Form1.Label4.Caption := IntToStr(TrueItemSize);
end;
ps/ Я ни разу не использовала эту функцию, НО...
Есть ли разница между буфером для приема информации и его адресом?
← →
GrayFace © (2004-08-07 10:21) [10]Скорее всего так:
var TrueItemSize:Int64;
HttpQueryInfo(hUrl, HTTP_QUERY_CONTENT_LENGTH, @TrueItemSize, {dwBufferLen} 4, dwIndex);
Procedure ThreadClass.ItemSize;
begin
Form1.Label4.Caption := IntToStr(TrueItemSize);
end;
Очень сомнительно, но возможно так:var TrueItemSize:string;
SetLength(TrueItemSize,256);
HttpQueryInfo(hUrl, HTTP_QUERY_CONTENT_LENGTH, @TrueItemSize, {dwBufferLen} 256, dwIndex);
Procedure ThreadClass.ItemSize;
begin
Form1.Label4.Caption := TrueItemSize;
end;
← →
Бином Ньютоныч (2004-08-07 11:07) [11]Результаты вызова функций надо проверять. И ошибки анализировать.
← →
Тестировщица © (2004-08-07 14:21) [12]>GrayFace © (07.08.04 10:21) [10] Зачем гадать? можно и в MSDN заглянуть
HttpQueryInfo is used to return response or request headers from an HTTP request.
You can retrieve different types of data from HttpQueryInfo:
strings (default)
SYSTEMTIME (for Data: Expires:, headers)
DWORD (for STATUS_CODE, CONTENT_LENGTH, and so on if HTTP_QUERY_INFO_NUMBER has been used)
BOOL WINAPI HttpQueryInfo(
HINTERNET hRequest,
DWORD dwInfoLevel,
LPVOID lpBuffer,
LPDWORD lpdwBufferLength,
LPDWORD lpdwIndex);
.....
lpBuffer
[in\out] Long void pointer to the buffer that receives the information. lpdwBufferLength
[in\out] Long pointer to a value that contains the length of the data buffer.
← →
Фёдор Мегатронов (2004-08-07 18:33) [13]Тестировщица
по твоему методу всё компилиться ... и даже работает, только не правельно - он возвращает "0". Пробовал на разных серверах, всё равно Ноль. в чём может быть проблема ?
← →
Мастер © (2004-08-07 20:02) [14]>Фёдор Мегатронов (07.08.04 18:33) [13]
Может быть стоит немного теории почитать сначала?
Ведь в форуме не обучением базовым понятиям занимаются?
← →
Фёдор Мегатронов (2004-08-07 20:57) [15]Мастер я конечно ещё только начинающий кодер, но поверьте мне, сначала я лезу в книжку, коих у меня не мало, а только потом уже на форум.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c