• Mit den Indys kann man doch auch Daten ?ber NNTP ?bertragen, sprich auf Usenet Server zugreifen etc. Ich komm jedoch nicht ganz mit den Komponenten zurecht. Kann da mal einer bisschen erkl?ren wie ich Dateien poste. Oder bzw. wie ich erstmal eine funktionierende Verbindung aufbaue. Ich versuch erst mal nen Server selbst auf dem PC laufen zu lassen, jedoch klappt das Connecten dadrauf auch nicht ganz.


    Bisschen Code hab ich mal zusammengesucht:


    Verbinden:

    Code
    IdNNTP1.Host:='newsgroups.borland.com';IdNNTP1.Connect;


    Das bekommt er schon nicht hin, ich hab mich mal zu dem Borlandserver da verbinden lassen, doch das ganze Programm bleibt dann h?ngen. Ich hab eingestellt, dass er die Aktion, die er gerade ausf?hrt in ein Memo reinschreibt. Da kommt dann 3 mal Status sonst nichts...


    Und ja, den Rest kann ich erst ausprobieren wenn das oben l?uft. Zuerst sollte ich aber man wissen, was z.B. li f?r eine Variable ist. Und wie ich IdMessage f?llen kann und mit was ich die f?llen muss.


    Liste aller Newsgroups abrufen:

    Code
    NewsList := TStringList.Create;  try    {Newsgroup-Liste abrufen}    IdNNTP1.GetNewsgroupList(NewsList);    {Nnewsgroups analysieren}    idx := 0;    while idx < NewsList.Count do begin      li := lvNewsGroups.Items.Add;      ParseNewsGroup( NewsList[idx],NewsGroup,Hi,Lo, Stat);      {Name der Newsgroup}      li.Caption := Newsgroup;      {Artikel, die sch?tzungsweise in der Newsgroup sind}      {falls lo gr??er ist als Hi, haben wir keine Artikel}      if (Lo >= Hi) then        li.SubItems.Add('None')      else        li.SubItems.Add(IntToStr(Hi - Lo));      {Newsgroup-Status}      {Das sollte nie nil sein, aber wir pr?fen es besser}      if Length(LowerCase(Stat[1])) > 0 then        case Stat[1] of          'y' : li.SubItems.Add('Permitted');          'n' : li.SubItems.Add('Read-Only');          'm' : li.SubItems.Add('Moderated');        end;      Inc (idx);    end;  finally    NewsList.Free;  end;


    Alle News einer Newsgroup als Liste anzeigen:

    Code
    strs := TStringList.Create;  try    IdNNTP1.SelectGroup(lvNewsGroups.Selected.Caption);    lvArticles.Items.Clear;    {Get article information from Lowest to Highest articles}    IdNNTP1.SendXOVER(IntToStr(IdNNTP1.MsgLow)+'-'+      IntToStr(IdNNTP1.MsgHigh),strs);    lvArticles.Items.BeginUpdate;    try      lvArticles.Items.Clear;      idx := 0;      while idx < Strs.Count do begin        ParseXOVERItem ( Strs [ idx ] );        Inc (idx);      end;    finally      lvArticles.Items.EndUpdate;    end;  finally    FreeAndNil(strs);  end;


    Kompletten Artikel anzeigen:

    Code
    IdNNTP1.GetArticle(intIndex,'',IdMessage1);


    Aritkel posten:

    Code
    IdNNTP1.Send(IdMessage1);


    Edit: Hab hier mal mein ganzes Projekt auf Rapidshare hochgeladen, wurde mit RAD Studio 2007 erstellt: http://rapidshare.com/files/176052938/NNTP.rar