Newsgroup: it.comp.software.newsreader
Titolo: [dialog] per MLC (principalmente) e chi si isntende di script


di Fr3ddie del  2005 15:36:35 +0100
in questo caso č venuto a mancare il "07 Dec", non so dirti se per colpa
del fatto che in quanto spedito da Fr3ddie manca il giorno della setimana
/Wed/, o se mancava lo /0/ davanti al 07  In altri casi mi sembra che non
inserisse per niente la parte relativa al Date: non ricordo bene
Oggi pomeriggio vado a rileggere le draft rigurdo la formattazione date

 Date, e le scrive in una certa forma (leva l'indirizzo va acapo ecc.)
Uh, in questa forma mi piace molto di più :)
Ora controllo se sul sito di MLC c'è anche questa versione ^^
-- 
Cammagno

 /Wed/
Proprio cosě, perché manca il giorno della setimana, e lo script pretende di
toglierlo.
Il modo piů semplice per rimediare č lasciare la data cosě com'č, ma allora
ti devi adattare a vedere Wed, se c'č. Se ti basta, il cambiamento č
immediato, basta che all'interno di
Function GetFromDate(var LocmyMemo: tMemo): string;
togli il +5 che vedi in rosso.
In pratica, quella linea deve diventare:
delete(temp2, 1, length(DateHeader));
Se cosě non ti piace dovrei inserire un controllo, ma avrei bisogno di
sapere tutti i possibili formati dell'header Date, e non li so.
 
-- 
Maria Luisa C - 08/12/2005 15.19.41
Even a stopped clock is right twice a day.
-

 Ora controllo se sul sito di MLC c'è anche questa versione ^^
Penso di no. Te lo incollo:
Program SubjMIDFromDate;
uses Forms, StdCtrls;
const
 SubjectHeader = 'Subject: ';
 MessageIDHeader = 'Message-ID: ';
 FromHeader = 'From: ';
 DateHeader = 'Date: ';
var
 myForm: TForm;
 myMemo: TMemo;
 Subject, MessageID, FromDate: string;
 HeadersAreHidden: Boolean;
Procedure GetMessageBody (var LocmyMemo: tMemo);
begin
 LocmyMemo.Clear;
 ADo('ArticlePane');
 ADo('SelectAll');
 Ado('Copy');
 LocmyMemo.PasteFromClipboard;
end;
Function ExtractHeaderLine(HeaderTag: String; var LocmyMemo: tMemo):
string;
var
 index : integer;
begin
 index := 0;
 Result := '';
 while (index < LocmyMemo.Lines.count-1) and (Result = '') do
 begin
 if Pos(HeaderTag,LocmyMemo.lines.Strings[index]) = 1 then
 begin
   Result := LocmyMemo.lines.Strings[index];
   if Result = HeaderTag then
   begin
    index := index+1;
    while (index < LocmyMemo.Lines.count-1)
    and (Pos(': ',LocmyMemo.lines.Strings[index])=0) do
    begin
     Result := Result + LocmyMemo.lines.Strings[index+1];
     index := index+1
    end //while
   end //if
 end
 else
   index := index+1;
 end; //while
end;
Function GetMessageId(var LocmyMemo: tMemo): string;
var temp: string;
begin
 temp := ExtractHeaderLine(MessageIDHeader, LocmyMemo);
 delete(temp, 1, length(MessageIDHeader)+1);
 Result := 'messaggio <news:'+copy(temp,1,Length(temp));
end;
Function GetSubject(var LocmyMemo: tMemo): string;
begin
 Result := ExtractHeaderLine(SubjectHeader, LocmyMemo);
 delete(Result, 1, length(SubjectHeader));
end;
Function GetFromDate(var LocmyMemo: tMemo): string;
var
 i: integer;
 temp1, temp2: string;
begin
 temp1 := ExtractHeaderLine(FromHeader, LocmyMemo);
 delete(temp1, 1, length(FromHeader));
 i := Pos('<', temp1);
 delete(temp1, i, length(temp1)-i+1);
 temp2 := ExtractHeaderLine(DateHeader, LocmyMemo);
 delete(temp2, 1, length(DateHeader)+5);
 Result := 'di '+temp1+'del '+temp2;
end;
Function AreHeadersHidden(var LocmyMemo: tMemo): boolean;
var index: integer;
begin
 Result := true;
 if LocmyMemo.Lines.count > 10 then
 begin
 index := 0;
 while (index < LocmyMemo.Lines.count -1) and result do
 begin
   index := index+1;
   result := Pos('Newsgroups: ', LocmyMemo.Lines.strings[index])=0;
 end; //while
 end; //if
end;
Procedure BuildmyContainers;
begin
 myMemo := tMemo.Create(myForm);
 myMemo.Parent := myForm;
 myMemo.Width := Application.Mainform.width;
end;
Begin
  myForm := tForm.Create(nil);
  try
  BuildmyContainers;
  GetMessageBody(myMemo);
  HeadersAreHidden := AreHeadersHidden(myMemo);
  if HeadersAreHidden then ADo('ShowHeaders');
  GetMessageBody(myMemo);
  Subject := GetSubject(myMemo);
  MessageID := GetMessageID(myMemo);
  FromDate := GetFromDate(myMemo);
  myMemo.Clear;
  myMemo.Lines.Add(Subject);
  myMemo.Lines.Add(MessageId);
  myMemo.Lines.Add(FromDate);
  myMemo.SelectAll;
  myMemo.CopyToClipboard;
  IF HeadersAreHidden then Ado('ShowHeaders');
  finally
  myform.free;
  end;
End.
-- 
Maria Luisa C - 08/12/2005 15.53.11
War is not nice.  Barbara Bush
-

 Penso di no. Te lo incollo:
Gentilissima come sempre :)))
Grazie mille (in effetti non l'avevo trovato).
E lo modifico subito come hai suggerito a Cataldo, ché a me la data
intera piace di più.
Grazie ancora ^_^
-- 
Cammagno

 diventare: delete(temp2, 1, length(DateHeader));
Credo di aver capito, cioč in parole povere toglie sempre i primi 5
carattteri dopo i duepunti dell'header Date: e nella stragrande
maggioranza dei casi va proprio bene per eliminare il giorno della
settimana e la virgola, nelle date perfettamente codificate. 
Ma nel mondo reale si trovano casistiche non perfette quindi corre il
rischio di togliere parti essenziali. Penso che farň come dice Cammagno,
ripristinando il formato intero del date. Grazie della spiega....

 di sapere tutti i possibili formati dell'header Date, e non li so. 
Riporto dalla vecchia 1036:
 2.1.2.  Date
  The "Date" line (formerly "Posted") is the date that the message was
  originally posted to the network.  Its format must be acceptable
  both in RFC-822 and to the getdate(3) routine that is provided with
  the Usenet software.  This date remains unchanged as the message is
  propagated throughout the network.  One format that is acceptable to
  both is:
                    Wdy, DD Mon YY HH:MM:SS TIMEZONE
  Several examples of valid dates appear in the sample message above.
  Note in particular that ctime(3) format:
                        Wdy Mon DD HH:MM:SS YYYY
  is not acceptable because it is not a valid RFC-822 date.  However,
  since older software still generates this format, news
  implementations are encouraged to accept this format and translate
  it into an acceptable format.
  There is no hope of having a complete list of timezones.  Universal
  Time (GMT), the North American timezones (PST, PDT, MST, MDT, CST,
  CDT, EST, EDT) and the +/-hhmm offset specifed in RFC-822 should be
  supported.  It is recommended that times in message headers be
  transmitted in GMT and displayed in the local time zone.
Questi gli esempi di cui parla:
[Nuovo formato standard]
  Date: Fri, 19 Nov 82 16:14:55 GMT
[Vecchio formato standard]
  Posted: Fri Nov 19 16:14:55 1982
Credevo che il formato adoperato da Fr3ddie non fosse valido affatto, 
ché nemmeno nella son-of appare, ma nel nuovo draft trovo:
 5.1.  Date
  The Date-header contains the date and time that the article was
  prepared by the poster ready for transmission and SHOULD express the
  poster's local time. The content syntax makes use of syntax defined
  in [RFC 2822] (but see the revised definition of zone in section
  2.4.3).
     header              =/ Date-header
     Date-header         = "Date" ":" SP Date-content
     Date-content        = date-time
  The date-time MUST be semantically valid as required by [RFC 2822].
  Although folding white space is permitted throughout the date-time
  syntax, it is RECOMMENDED that a single space be used in each place
  that FWS appears (whether it is required or optional).
  The date-time MUST NOT be more than 24 hours into the future
  (injecting agents will reject such articles, possibly even when the
  margin is less than 24 hours - see 8.2.2 - and MAY also reject them
  if it is inordinately far into the past).  Relaying agents MUST NOT
  modify the Date-header in transit.
 5.1.1.  Examples
     Date: Sat, 26 May 2001 11:13:00 -0500 (EST)
     Date: 26 May 2001 16:13 +0000
     Date: 26 May 2001 16:13 GMT (Obsolete) 
Quindi a giudicare dagli esempi pare che sia corretto, strano però...
-- 
Ciao, Massimo | ICQ# 57669970 | Jabber: 
pet...@jabber.linux.it
«Solo due cose contano, nella vita: l'amore in tutte le sue forme con
ragazze carine, e la musica di New Orleans e Duke Ellington. Il resto
sarebbe meglio che sparisse, perché il resto è brutto.» [B. Vian]

 Riporto dalla vecchia 1036:
Ti ringrazio dopo due settimane e un sacco di guai in mezzo... :-\
Ho salvato il tuo messaggio, così avrò un riferimento sicuro nel caso
servisse modificare lo script.
Ciao,
-- 
Maria Luisa C - 27/12/2005 20.43.42
Part of being sane, is being a little bit crazy.
-

 Quindi a giudicare dagli esempi pare che sia corretto, strano perň...
Non solo, mi sa che il formato senza il giorno della settimana č valido.
Č uscita una nuova Draft, 
|                      Netnews Article Format        December 16, 2005
|                   draft-ietf-usefor-usefor-06
| 
| 3.1.2.  Date
|    The Date header field is the same as that specified in Sections 3.3
|    and 3.6.1 of [RFC2822] with the added restrictions detailed ...
che da quello che ho capito non sostituisce ma si affianca alle relative
[usepro] e [useage] per cui anche questa [usefor] cioč si dovrebbero
consultare tutti e tre questi documenti nella loro rispettiva ultima
versione disponibile. O forse non funziona cosě, boh...
Comunque richiama il formato stesso descritto nella 2822, quella del 2001
che vale anche per le email, che a suo tempo diceva esplicitamente:
| date-time       =       [ day-of-week "," ] date FWS time [CFWS]
| ...
| That is, the day-of-the-week (if included) MUST be the day implied
quindi il giorno della settimana non č obbligatorio, 
anche se quasi tutti a parte Fr3ddie, ce lo mettono