Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Datei wird nicht gespeichert. (https://www.delphipraxis.net/91173-datei-wird-nicht-gespeichert.html)

lucius 30. Apr 2007 19:20


Datei wird nicht gespeichert.
 
Guten Abend Leute,

Vielleicht koennt Ihr mir weiterhelfen.
Ich moechte mir von einer Newsgroup eine Binaire Datei downloaden und auf meiner HD speichern.
Ich habe mir eine Globale Stringliste namens (sm) deklariert wo die Segments der Datei geadded werden.
Delphi-Quellcode:
xSegments := xItem.NamedItem['segments'];
  for j := 0 to xSegments.SubItemCount - 1 do
  begin
  sm.Add(xItem.NamedItem['segments'].SubItems[j].Text);
  end;
Jetzt wollte Ich durch folgenden Code die Segments mit NNTP1.GetBody aufrufen und auf der HD speichern, ich weiss aber nicht genau ob Ich da richtig liege.
Koennt Ihr mir vielleicht bitte helfen?
Als Decoder habe ich mir den yDecoder von Sourceforge geholt, muss Ich spaeter aber noch irgendwo einbauen.
Woll te erstmal die Datei so auf der HS speichern.
Delphi-Quellcode:
 
var
msgcount, i, J: integer;
MyTestFile: string;
begin
msgcount:=idnntp1.MsgCount;
    Memo1.Lines.Add( 'msgcount = ' + inttostr(msgcount) );
    IdMessage1.ClearBody;
    IdMessage1.MessageParts.Clear;
    IdMessage1.Clear;
    idmessage1.AttachmentTempDirectory := 'c:\temp\nzbtemp';
      try
      showmessage(sm.Text);
      idNNTP1.GetBody(sm.Strings[0], idMessage1); <-------- 1st segment: erh5mn$rv1$4@upload.eweka.nl
    except
    end;

    Memo1.Lines.Add( 'encoding = ' + idmessage1.AttachmentEncoding );
    Memo1.Lines.Add( 'type = ' + idmessage1.ContentType );
    Memo1.Lines.Add( 'transfer encoding = ' + 
     idmessage1.ContentTransferEncoding );
    Memo1.Lines.Add( 'attachment count = ' + 
    IntToStr(idmessage1.MessageParts.Count) );

     // dump the header
    if idmessage1.Headers.Count > 0 then
      for i:=0 to idmessage1.Headers.Count-1 do
        Memo1.Lines.Add(idmessage1.Headers.Strings[i]);

     // loop for attachments
     for J := 0 to Pred( IdMessage1.MessageParts.Count ) do
     begin
       if ( IdMessage1.MessageParts.Items[ J ] is TIdAttachment) then
       begin
         Memo1.Lines.Add( '** ATTACHMENT # ' + IntToStr(J) );
         Memo1.Lines.Add( 'filename = ' + 
          TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).Filename );
         Memo1.Lines.Add( 'charset = ' + 
          TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).CharSet );
         Memo1.Lines.Add( 'type name = ' + 
          TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).ContentTypeName );
         Memo1.Lines.Add( 'descr = ' + 
          TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).ContentDescription );
         Memo1.Lines.Add( 'content id = ' + 
          TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).ContentID );


         Memo1.Lines.Add( 'id = ' + 
          IntToStr(TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).ID) );
         Memo1.Lines.Add( 'index = ' + 
          IntToStr(TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).Index) );


         MyTestFile := TIdAttachment(IdMessage1.MessageParts.Items[ 
          J ] ).Filename;
          showmessage(MyTestFile);
          exit; <--------------------------- hier rausgehen vor Exception: could not save attachment.
         if fileexists(MyTestFile) then deletefile(MyTestFile);
         TIdAttachment(IdMessage1.MessageParts.Items[ 
          J ] ).SaveToFile(MyTestFile) ; <---------------------------------------- hier wird gesaved.
       end;
     end;

  //end; // connected

  // disconnect
  try
    IdNNTP1.Disconnect;
  except
  end;

  Memo1.Lines.Add('end.');

end;
Schonmal Danke im voraus.

Gruss Lucius.

lucius 1. Mai 2007 07:53

Re: Bitte Hilfe, Datei wird nicht gespeichert.
 
*push*

Ist wirklich wichtig.

fkerber 1. Mai 2007 11:28

Re: Bitte Hilfe, Datei wird nicht gespeichert.
 
Hi!

Bitte nicht innerhalb von 24h Stunden pushen, vor allem nicht, wenn quasi nur die Nacht dazwischen liegt!

Eine weitere Bitte hätte ich noch:
Könntest du deinen Titel ändern, sodass das "Bitte Hilfe" wegkommt? Hilfe braucht hier schließlich (fast) jeder! ;)


Ciao, Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz