Can I load a memo or rich edit from a text file on server?

纵然是瞬间 提交于 2019-12-22 11:38:08

问题


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 rich edit or memo from that file? that file has itself address like www.mysite.com/my_text_File.txt thank you for your help.


回答1:


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.




回答2:


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;




回答3:


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).



来源:https://stackoverflow.com/questions/4586288/can-i-load-a-memo-or-rich-edit-from-a-text-file-on-server

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!