Могу ли я загрузить заметку или расширенное редактирование из текстового файла на сервер? - PullRequest
2 голосов
/ 03 января 2011

Я разработал сайт и загрузил его на сервер, и он работает нормально. на одной из этих страниц я получаю некоторую информацию от пользователей, например их адреса и ..., и сохраняю их в текстовый файл. Могу ли я подать заявку и загрузить из этого файла расширенное редактирование или заметку? этот файл имеет собственный адрес, например www.mysite.com/my_text_File.txt спасибо за вашу помощь.

Ответы [ 3 ]

3 голосов
/ 03 января 2011

Да, вы можете.

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.

3 голосов
/ 03 января 2011

Оставьте TMemo или TRichedit в форме вашего заявления. Затем удалите компонент TidHTTP из компонентов Indy.

добавить событие события кнопки onclick и сделать следующее:

процедура TForm1.Button1Click (Отправитель: TObject);
начать
memo1.lines.Text: = idHttp1.Get ('http://www.delphiprojectcode.com/test.txt');
конец;

ИЛИ

процедура TForm1.Button1Click (Отправитель: TObject);
начать
richedit1.Text: = idHttp1.Get ('http://www.delphiprojectcode.com/test.txt');
конец;

0 голосов
/ 03 января 2011

И TRichEdit, и TMemo загружают данные из строки, которую вы им передаете. Поэтому в клиентском приложении вам нужно скачать текстовый файл (возможно, с помощью HTTP-клиента, один из вариантов Indy - один из вариантов) и передать его содержимое в TRichEdit или TMemo (через свойство Text в TMemo и соответствующие механизмы в TRichEdit).

...