InternetReadFile获取的数据用指针存储
我想请问用InternetReadFile循环获取URL上文件的内容.
用一个指针类型存储,由于我并不知道URL上面的文件多大,无法分配完整大小的内存.
只能通过循环获取的方式,假设每次获取1024字节,那么获取后的数据如何附加在原来指针的尾端?
- Delphi(Pascal) code
var hSession, hRequest: HINTERNET; dwBytesRead: DWORD; szBuffer: Array[0..1024] of Char; lpData: Pointer; szFileURL: string; dwFileSize: DWORD;begin szFileURL := 'http://127.0.0.1/1.txt'; dwFileSize := 0; hSession := InternetOpen('', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin hRequest := InternetOpenUrlA(hSession, PAnsiChar(szFileURL), nil, 0, INTERNET_FLAG_RELOAD, 0); FillChar(szBuffer, SizeOf(szBuffer), #0); if Assigned(hRequest) then begin try while True do begin dwBytesRead := 1024; if InternetReadFile(hRequest, @szBuffer, 1024, dwBytesRead) then begin if dwBytesRead = 0 then Break; dwFileSize := dwFileSize + dwBytesRead; //这里应该如何附加指针的数据? end else Break; end; finally InternetCloseHandle(hRequest); end; end; end; finally InternetCloseHandle(hSession); end;end;[解决办法]
[解决办法]
CopyMemory,Move都可以