Pobieranie tekstu do memo z serwera FTP, jak?

Wątek zablokowany 2012-02-05 16:09 przez madmike.

0

Witam. Chciałbym aby w moim programie byłą tz. informacja. Jednak chciałbym aby była ona aktualizowana (nie poprzez plik na komputerze). Aktualizacja odbywała by się poprzez pobranie zawartości pliku "ini" który byłby wyświetlany w komponencie "memo". Jestem pewien że da się to zrobić poprzez komponent "HTTPGet", lecz nie wiem jak się do tego zabrać. Proszę o pomoc, z góry dziękuje.

Pozdrawiam.

0

lecz nie wiem jak się do tego zabrać

No ja bym zaczął od googla i wyszukiwarki na 4p. Wiesz ile od tego tutoriali jest?

Btw. mówisz o FTP czy HTTP w końcu bo nie ma zgodności między komponentem a tematem, na pewno wiesz co to HTTP a co FTP?

0

Chodzi mi o to że mam adres strony np. www.strona.pl/plik.ini, i z tego pliku pobieram treść poprzez "HTTPGet" do Memo.

0

[quote]Chodzi mi o to że mam adres strony np. www.strona.pl/plik.ini, i z tego pliku pobieram treść poprzez "HTTPGet" do Memo.[/quote]
Nie wiem jak to zrobić z tym czymś co znalazłeś i wiem że lepiej to można zrobić z Synapse.
Jeszcze google nie pytałeś? Mówiłem że tutoriali od tego jest masa, więc jaki masz problem? Bo ja nie widzę żadnego żeby pytać googla zarówno teraz jak i w przyszłości zamiast zadawać durne pytania (durne bo oczywiste).

0

Najlepszym wykonaniem byłby plik ini ponieważ do uses dorzucam "Inifiles" i mam czynności takie jak np. pobieranie zawartości pliku.
Poprzez HTTPGet pobieram plik do folderu z programem, następnie pobieram zawartość, kopiuje do memo i usuwam plik ini.

 
//button click
HTTPGet1.URL :='http://www.strona.pl/plik.ini'; //lokalizacja pliku z informacją
//tutaj nie wiem co dać, może - "HTTPGet1.FileName := ExtractFilePath(Application.ExeName) + 'plik.ini';" 
HTTPGet1.GetFile;  //pobranie pliku ini

Teraz w zdarzeniu onDoneFile komponentu HttpGett:

var
INI : TINIFile;
//może coś jeszcze trzeba dodać
begin
INI := TINIFile.Create(HTTPGet1.FileName);
try
INI.ReadString('sekcja','','');  //odczytanie tekstu z pliku ini
begin
Memo1.Lines.Add(xxx); // tutaj nie wiem jak skopiować tekstu z pliku ini

//to jest tylko próba i przykład tego jak to może wyglądać
//potem dodaje kod usunięcia pliku ini - wiem jak to zrobić

Aktualizacja 5 luty 2012 - 15:07

Poradziłem sobie sam, trochę pomyślałem, popróbowałem i udało się!
Daję wam kod programu jak zrobić informację pobieraną z serwera ftp:

//|---------------------------|
//|--------By Scoti-----------|
//|---------------------------|

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, HTTPGet, StdCtrls, INIFiles;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    HTTPGet1: THTTPGet;
    procedure HTTPGet1DoneFile(Sender: TObject; FileName: String;
      FileSize: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.HTTPGet1DoneFile(Sender: TObject; FileName: String;
  FileSize: Integer);
var
INI : TINIFile;
begin
INI := TINIFile.Create(HTTPGet1.FileName);
try
Memo1.Clear;
Memo1.Lines.Add(INI.ReadString('Notes','I',''));
finally
INI.Free;
DeleteFile(HTTPGet1.FileName); //usunięcie pliku ini
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 HTTPGet1.URL := 'http://www.strona.pl/notes.ini';  //lokalizacja pliku z informacją
 HTTPGet1.FileName := ExtractFilePath(Application.ExeName) + 'notes.ini';
 HTTPGet1.GetFile;  //pobranie pliku ini
end;

end.

Temat można zamknąć :)

0

Niestety mamy tu kilku użytkowników np. 123 vel payl, którzy nawet w dziale newbie muszą robić z siebie geniusza, który nie pomoże, ale pokaże, że ON wie, ale nie powie. Człowieku: nie chcesz pomagać - nie pomagaj; nie rób z tematu śmietnika.