Can I load a memo or rich edit from a text file on server?
I designed a website and its uploaded to server and is working fine. in one of these pages i get some info from users like their addresses and ... and save them to a text file. Can i make an application and load a ri开发者_StackOverflowch edit or memo from that file? that file has itself address like www.mysite.com/my_text_File.txt thank you for your help.
Yes, you can.
function WebGetData(const UserAgent: string; const Server: string; const Resource: string): AnsiString;
var
hInet: HINTERNET;
hURL: HINTERNET;
Buffer: array[0..1023] of AnsiChar;
i, BufferLen: cardinal;
begin
result := '';
hInet := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hURL := InternetOpenUrl(hInet, PChar('http://' + Server + Resource), nil, 0, 0, 0);
try
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
result := result + AnsiString(Buffer);
if BufferLen < SizeOf(Buffer) then
SetLength(result, length(result) + BufferLen - SizeOf(Buffer));
until BufferLen = 0;
finally
InternetCloseHandle(hURL);
end;
finally
InternetCloseHandle(hInet);
end;
end;
procedure TForm1.FormClick(Sender: TObject);
begin
Memo1.Text := WebGetData('My Application', 'www.rejbrand.se', '');
end;
Notice that the above code does only work with ASCII text. To obtain a UTF-8 solution, replace AnsiString
with string
in the signature, and replace the second line in the repeat
block with
result := result + UTF8ToString(AnsiString(Buffer));
and tweak the SetLength
.
Drop a TMemo or TRichedit on the form of your application. Then drop a TidHTTP component from the Indy components.
add a onclick button event event and do the following:
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.lines.Text:= idHttp1.Get('http://www.delphiprojectcode.com/test.txt');
end;
OR
procedure TForm1.Button1Click(Sender: TObject);
begin
richedit1.Text:= idHttp1.Get('http://www.delphiprojectcode.com/test.txt');
end;
Both TRichEdit and TMemo load the data from string you pass to them. So what you need to do in your client-side application is download the text file (probably using HTTP client, Indy's one is one of the options) and pass it's contents to TRichEdit or TMemo (via Text property in TMemo, and corresponding mechanisms in TRichEdit).
精彩评论