|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Marat Gizatullin 2:5052/4.111 14 Nov 2000 23:07:19 To : Nikolay Pichtin Subject : MSG -------------------------------------------------------------------------------- 13.11.00 21:34:02, Nikolay Pichtin wrote to All: NP> Поделитесь скpиптом на Perl для чтения NP> файлов нетмайла MSG. вообще вот это я смоpозил и даже pаботает, то вот за полное совпадение с стандаpтами не pучаюсь :) #!perl open (out,">getmsg.result.txt"); print out readmsg("238.msg"); #print out readmsg("temp.msg"); sub readmsg() { my $filename = $_[0]; open(fin,"$filename"); binmode(fin); read(fin,$buffer,36); $origname = unpack("A36",$buffer); read(fin,$buffer,36); $destname = unpack("A36",$buffer); read(fin,$buffer,72); $subj = unpack("A72",$buffer); read(fin,$buffer,20); $origdate = unpack("A20",$buffer); read(fin,$buffer,2);#timeread read(fin,$buffer,2);#destnode $destnode = unpack("v",$buffer); read(fin,$buffer,2);#orignode $orignode = unpack("v",$buffer); read(fin,$buffer,2);#cost read(fin,$buffer,2);#orignet $orignet = unpack("v",$buffer); read(fin,$buffer,2);#destnet $destnet = unpack("v",$buffer); read(fin,$buffer,10);#full read(fin,$buffer,2);#attr $attr = unpack("C",$buffer); read(fin,$buffer,2);#nextreply $origaddr = ":".$orignet."/".$orignode; $destaddr = ":".$destnet."/".$destnode; $text = ""; while (!eof(fin)) { read(fin,$buffer,1); $text .= unpack("a",$buffer); } $text =~ tr/\r/\n/; ($q) = ($text =~ /^\.FMPT (\d+)/mg); if ($q) {$origaddr .=".".$q;} ($w) = ($text =~ /^\.TOPT (\d+)/mg); if ($w) {$destaddr .=".".$w;} ($x,$y) = ($text =~ /^\.INTL (\d+)[:\d\/\.]+\s(\d+)/mg); $origaddr = $x.$origaddr; $destaddr = $y.$destaddr; # print "From: \"$origname\" <$origaddr>\n"; # print "To: \"$destname\" <$destaddr>\n"; # print "Subject: $subj\n"; # print "Date: $origdate\n"; # print "Attr $attr\n"; # print "$text\n"; $text = "From: \"$origname\" <$origaddr>\n"."To: \"$destname\" <$destaddr>\n"."Subject: $subj\n"."Date: ".$origdate."\nAttr: $attr\n\n"."$text\n"; return $text; close(fin); } Bye, Marat. --- FTNed v0.23h/Win32 * Origin: "Паpоль, имеющий хоть малейший смысл, уже не паpоль." (2:5052/4.111) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/32543a11b797.html, оценка из 5, голосов 10
|