我可以从服务器上的文本文件加载备忘录或丰富的编辑吗?

时间:2011-01-03 16:35:37

标签: delphi delphi-7

我设计了一个网站并将其上传到服务器并且工作正常。在其中一个页面中,我从用户那里获得了一些信息,例如他们的地址和...并将它们保存到文本文件中。我可以创建一个应用程序并从该文件加载丰富的编辑或备忘录吗?该文件本身的地址如www.mysite.com/my_text_File.txt 谢谢你的帮助。

3 个答案:

答案 0 :(得分:3)

是的,你可以。

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;

请注意,上述代码仅适用于ASCII文本。要获取UTF-8解决方案,请将AnsiString替换为签名中的string,并将repeat块中的第二行替换为

    result := result + UTF8ToString(AnsiString(Buffer));

并调整SetLength

答案 1 :(得分:3)

在应用程序的表单上删除TMemo或TRichedit。然后从Indy组件中删除TidHTTP组件。

添加onclick按钮事件事件并执行以下操作:

程序TForm1.Button1Click(发件人:TObject);
开始
  memo1.lines.Text:= idHttp1.Get('http://www.delphiprojectcode.com/test.txt');
结束;

OR

程序TForm1.Button1Click(发件人:TObject);
开始
richedit1.Text:= idHttp1.Get('http://www.delphiprojectcode.com/test.txt');
端;

答案 2 :(得分:0)

TRichEdit和TMemo都会加载您传递给它们的字符串中的数据。因此,在客户端应用程序中需要做的是下载文本文件(可能使用HTTP客户端,Indy的选项之一)并将其内容传递给TRichEdit或TMemo(通过TMemo中的Text属性,以及相应的机制) TRichEdit)。