yenc attachments do not decode correctly - help needed

Giganews Newsgroups
Subject: yenc attachments do not decode correctly - help needed
Posted by:  Kant999 (kantorenhuis_nospam_@hotmail.com)
Date: Wed, 7 Feb 2007

I'm trying to get yenc encoded attachments decode correctly. I'm trying to
download messages with single part .nzb files.
Delphi 2006 Indy 10.1.5

I verified by adding break point in yenc decoder function CheckForStart that
the yenc decode code is actually called and it is. This is part of my code
....[below]
The resulting nzb should be some readable file with XML type formatting, but
instead I get binary garbage. I checked with several files and I also ported
(big word) my code to freepascal + indy 10.1.5 and got the same result.
Using grabit as newsreader I can correctly download the nzb files.

Also, I can download UUE attachments no problem there.

Expert help needed ! Anyone ? And multipart messages (yenc file accross
several messages)?
Does it have something to do with coding systems or system locale settings,
where would I look?

Regards
Carl

------------------------- code sample ----------------------------

  // connect
  try
    IdNNTP1.Connect;
  except
  end;

  if IdNNTP1.Connected then
  begin
    // say something
    SynEdit1.Lines.Add('I am connected');

    idNNTP1.SelectGroup('alt.binaries.ftd');            // looking for .nzb
files here

    msgcount:=idnntp1.MsgCount;
    SynEdit1.Lines.Add( 'msgcount = ' + inttostr(msgcount) );

    IdMessage1.ClearBody;
    IdMessage1.MessageParts.Clear;
    IdMessage1.Clear;
    idmessage1.AttachmentTempDirectory := 'c:\temp
zbtemp';            //
temp dir is needed !!

    try
      idNNTP1.GetArticle(StrToInt(Edit1.Text),idmessage1);
    except
    end;

    SynEdit1.Lines.Add( 'encoding = ' + idmessage1.AttachmentEncoding );
    SynEdit1.Lines.Add( 'type = ' + idmessage1.ContentType );
    SynEdit1.Lines.Add( 'transfer encoding = ' +
idmessage1.ContentTransferEncoding );
    SynEdit1.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
        SynEdit1.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
        SynEdit1.Lines.Add( '** ATTACHMENT # ' + IntToStr(J) );
        SynEdit1.Lines.Add( 'filename = ' +
TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).Filename );
        SynEdit1.Lines.Add( 'charset = ' +
TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).CharSet );
        SynEdit1.Lines.Add( 'type name = ' +
TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).ContentTypeName );
        SynEdit1.Lines.Add( 'descr = ' +
TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).ContentDescription );
        SynEdit1.Lines.Add( 'content id = ' +
TIdAttachment(IdMessage1.MessageParts.Items[ J ] ).ContentID );

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

        MyTestFile := TIdAttachment(IdMessage1.MessageParts.Items[
J ] ).Filename;
        if fileexists(MyTestFile) then deletefile(MyTestFile);
        TIdAttachment(IdMessage1.MessageParts.Items[
J ] ).SaveToFile(MyTestFile) ;
      end;
    end;

  end; // connected

  // disconnect
  try
    IdNNTP1.Disconnect;
  except
  end;

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

------------- garbage sample follows ---------

xN°4ô ¼H xó H 4ô "ó *H 4ô @ô wH 4ô  kH DuH °h©
`Û¯    ?ô H ?ô Lô ÔH ?ô ^ô þH ?ô  kH           `'£ ¨Ü© ÿÿÿÿÿÿÿÿ
«¢ ´ô ´ô òtH ¼ô uH ´ô ìö ¸»B ÇÆ      Ü §?öª ~'§  «¢ Lõ ATH Èô KTH
Lõ ø lzH Lõ ìö ¸»B  "¨
hùª (úª ¨&§ Pþ¥    ö âÜC  "¨ Û»B ìö Ù¼B  "¨ Ú×C ìö Àø  "¨  ÀÔw
?  ö ötÕw
?  È. üÿÿÿ        "ö rlÕw    Lö      @YÓ}  È.    Pø »ôÔwÓ}
Lö    Üö rlÕwâôÔwÈ. ð̯ XbØw¾"Ôw      È.    Z°Öw ,u ó          
°ÖwXö 4?ÔwÈ. ó              oö øëý    |ö ªð| ìý4  ^ö À¬ 
øëý8ù    Áِ| Ë?| ìý4  "Ë?|Ðö õD  "¨   À¬ Ù<Ôw àý¼ö ¤ºÔwLÀ  LÀ
Ðö FºÔw ,u ìö  "¨ üö .ºB  "¨ Àø  "¨ gÔC    ½  È  È.    Hø ,D È.
8ù Àü¤ Àø  D Àü¤ Àø Ú×C 8ù »Ó Àü¤   "¨ X÷ éÔw°ÖwÈ. 
  ¬ø ØD °ÖwÈ.           ¬ø 4ù  "¨ 4ù Ú×C 4ù ¡Ó  "¨ »Ó Àü¤ ´÷
,ÞA ä÷ õD Àü¤ @Yà÷ 4?Ôw®& 5  Ó}È. »Ó )_A p¬ qIB yIB Àü¤ ê « D
ø  D Ê D °ø Ô D ø "ø »Ó »Ó Àü¤ ,ø ,ÞA F        ¸ø
îøÕwÓ}I Z Tø  àý    ^ø õD Àü¤     C    ¤ø õD  "¨ C    y
  Àø Àü¤ ¸ø « D oø à D ¸ø Tù Ô D ¸ø 8ù »Ó    Àü¤ Ðø ,ÞA   È
È.    üø 4?Ôw®&   È  È. »Ó Í«ºÜ    8ù »Ó dù ^Ôw»Ó ®&   È
È.    ®& µ                   ¨ù           ù    ¨ù g×w0^Ôw
¸ù À´Ôw    »Ó ®&   È  È. ¬£x     ~£x µ      Où  ɯ ¼û
g×wдÔwÿÿÿÿàù µÔw~£x   È  È. »Ó            @ú ãê|ðù   ~£x 
È  È. »Ó s´Ôw¾"ÔwäÔÔw®&   È  È.    °      ,u   µ ®& 4ú `ú
¹Ôw~£x   È  È.      xú }ü×w®&   È  È. "ú èd×w ,u      ,u µ
  û ÞwÕwµ         û  ,u Ìá  °ÖwZ°Öw ,u "      È.      û
4?ÔwÈ. "       °ÖwÍ«ºÜ    <û °Öwhû Ù<Ôw àýü"Ôw¤.ÔwÌá  8û Z°Öw ,u
          °Öwdû 4?ÔwÈ.         °ÖwÍ«ºÜ    û °ÖwÌû
^Ôw°ÖwÈ.           °Öw$þ                   È. 
?û ý ôý g×w0^Ôw    üû ?ÆÔw    °ÖwÈ.                  "¨ ü
éÔw°ÖwÈ.           oý ØD °ÖwÈ.         oý $þ  "¨  "¨ ÿàC
oý Pu È. ,  ,  M  $þ $þ  "¨ $þ Ú×C $þ ¡Ó  "¨ "ü Ìü 6Frt
    Àý Ust    ¼ü >ëÔwÐ-j            ý lst       qst    àý
?  Ôü  Hý HåutxstÿÿÿÿqstòêÔw      oý    àýXý zêÔw   
oý ­êÔw    àý    4ý   `þ g×w°êÔwÿÿÿÿ­êÔwóëÔwOý oý ìÔwÚ¾ÔwèÔw
èD àý ãê|Oý 0       $þ ¡Ó Üý õD  "¨   ,D      .áÖwbáÖw
  ´þ    $þ  "¨ þ .ºB oþ ¡Ó  "¨ « D  þ Ã D þ ¸þ Ô D þ oþ ¡Ó
"¨ 4þ ,ÞA            `þ 4?ÔwÈ.         ¡Ó Í«ºÜ    oþ ¡Ó Èþ
^Ôw¡Ó È.         dÿ \ÿ  ,u                   0  
|þ È. ÿ g×w0^Ôw    (ÿ Í?Ôw    ¡Ó È.         ´,u   \ÿ pô¨ 
(ÿ gÊÔw\ÿ        ðþ   ?ÿ g×wð?Ôwÿÿÿÿ8ÿ Ç-Ôw\ÿ   È. ?E \ÿ  
¨ÿ 1 2 6 6 pô¨ ¿?E È.         ,D    ðýß?E Oÿ é?E ¨ÿ ´ÿ "SE
¨ÿ 1 2 6 6  ðýpô¨ Àÿ ¼H Næ|àÿ DC@ Àÿ ðÿ Om|1 2 6 6  ðýúU?Èÿ
~©ØþÿÿÿÿóTf|Xm|            Ì»H    Actx      ~$  Ä                
  4                                          o      [IY-°  2
ä  Ò      äf¸  F      ê      ÒÕOÑì  F  4
  ê      .­jØ
  F  h
        Ô        O          ,      Ì  P      $
|    SsHd,          ^    X  ,  Z  Z
  $  4  C : \ W I N D O W S \ W i n S x s \                    o  
[IY-o  2  Р Ò    äf¤  F  ì  ê    ÒÕOÑØ  F      ê  
..­jØ   F  T       d  
  d    ,  n  "÷¼ÊgYÅ                          
M i c r o s o f t . W i n d o w s . S y s t e m C o m p a t i b l e , p r o
c e s s o r A r c h i t e c t u r e = " x 8 6 " , p u b l i c K e y T o k e
n = " 6 5 9 5 b 6 4 1 4 4 c c f 1 d f " , t y p e = " w i n 3 2 " , v e r s
i o xN°4ô ¼H xó H 4ô "ó *H 4ô @ô wH 4ô  kH DuH °h©
`Û¯    ?ô H ?ô Lô ÔH ?ô ^ô þH ?ô  kH           `'£ ¨Ü© ÿÿÿÿÿÿÿÿ
«¢ ´ô ´ô òtH ¼ô uH ´ô ìö ¸»B ÇÆ      Ü §?öª ~'§  «¢ Lõ ATH Èô KTH
Lõ ø lzH Lõ ìö ¸»B  "¨
hùª (úª ¨&§ Pþ¥    ö âÜC  "¨ Û»B ìö Ù¼B  "¨ Ú×C ìö Àø  "¨  ÀÔw
?  ö ötÕw
?  È. üÿÿÿ        "ö rlÕw    Lö      @YÓ}  È.    Pø »ôÔwÓ}

Replies