Newsgroup: it.comp.software.newsreader
Titolo: [Dialog] E' possibile...

...attraverso qualche incantesimo...fare in modo che dialog aggiunga
in automatico alla fine di un post una segnalazione riguardo eventuali
follow up o cross post? Grazie
-- 
Pacey: "Lascialo perdere quelli con lo yacht non rimorchiano le
cameriere"
Joey: "Potrei ucciderti. Una notte mentre dormi potrei tagliarti la
gola o farti un buco in testa. Sta' attento"
GIGAMAIL by X-Privat: 
http://www.x-privat.org/gigamail.php

 follow up o cross post? Grazie
certo, ci sono vari script (che differiscono fra loro per alcuni
dettagli di personalizzazione) che lo consentono... io uso la versione
di Antonio (leggermente modificata), te lo riporto di seguito:
(spero correttamente, in OnBeforeSendingMessage ne ho diversi)
#####
program OnBeforeSendingMessage;
// ** Introduction for XPost/Fup2-Message
// ** change message as you want to
const
  MessageXPost = #13+#10'X-Post to (questo post è stato inviato
a):'+#13+#10+' ';
  MessageFup2  = #13+#10'Follow-up to (le risposte verranno inviate
a):'+#13+#10+' ';
  Separatore   = ','+#13+#10+' '+'news:';      
// ** Begin of code
Procedure XPost_and_FUp2_Information (var Message: TStringlist;
Servername: string; IsEmail: boolean);
var
  FUP2,
  XPost,
  Header: boolean;
  i,
  SigLine: integer;
  s,
  Fup2Group,
  XPostGroups: string;
begin
  if IsEmail=true then exit;
  FUP2:=false;
  XPost:=false;
  Header:=true;
  SigLine:=0;
  for i:=0 to Message.count-1 do
    begin;
    s:= message.strings[i];
    if s='' then header:=false;
    if header=true then
      begin;
      if Pos('Newsgroups:',s)>0 then    
        if Pos(',',s)>0 then
          begin;
          XPost:=true;
          XPostGroups:='news:'+copy(s,13,length(s)-11);
          if Pos(',',XPostGroups)>0 then
             XPostGroups:=StringReplace(XPostGroups, ',',  Separatore,
[rfReplaceAll]);
//        WriteToLog(MessageXPost+XPostGroups,1);
          end;      
      if Pos('Followup-To:',s)>0 then    
        begin;
        FUP2:=true;
        Fup2Group:='news:'+copy(s,14,length(s)-12);
        if Pos(',',Fup2Group)>0 then
           Fup2Group:=StringReplace(Fup2Group, ',',  Separatore,
[rfReplaceAll]);
        if Pos('news:poster',Fup2Group)>0 then
           Fup2Group:=StringReplace(Fup2Group, 'news:poster', 'poster
(via e-mail)', [rfReplaceAll]);
//      WriteToLog(MessageFup2+Fup2Group,1);
        end; 
      end
    else
      if s='-- ' then
        SigLine:=i;
//  WriteToLog('Analysierte Zeile: '+s,1);
    end;
  if XPost=true then
    if Sigline=0 then
      Message.Add(MessageXPost+XPostGroups)
    else
      Message.Insert(Sigline,MessageXPost+XPostGroups);   
  if FUP2=true then
    if Sigline=0 then
      Message.Add(MessageFup2+Fup2Group)
    else
      Message.Insert(Sigline,MessageFup2+Fup2Group);
  if (FUP2=true) or (XPost=true) then
    if Sigline=0 then
      Message.Add('')
    else
      Message.Insert(SigLine,'');
end;
#####
-- 
Cammagno


 (spero correttamente, in OnBeforeSendingMessage ne ho diversi)
Ti ringrazio. C'è un problema, cioè ci sono vari problemi: quando lo
compilo mi da diversi errori...e non conoscendo il linguaggio non so
dove mettere le mani...
-- 
Pacey: "Ehi, c'è nessuno lì?"
Joey: "Che ci fai tu qui!?"
Pacey: "Non ci crederai, stavo remando...e magicamente sono arrivato
qui"
Joey: "E se vieni magicamente più vicino ti uccido"


 dove mettere le mani...
Probabilmente l'avevo troncato... prova cosě ^_^;
#####
program OnBeforeSendingMessage;
// ** Introduction for XPost/Fup2-Message
// ** change message as you want to
const
  MessageXPost = #13+#10'X-Post to (questo post č stato inviato


function OnBeforeSendingMessage(var Message: TStringlist; Servername:
string; IsEmail: boolean):boolean;
begin;
  result:=true;
  XPost_and_FUp2_Information (Message, Servername, IsEmail);
end;
begin
end.
#####
se nonva neppure cosě... aspetta gli esperti ^_^;;;
-- 
Cammagno


 follow up o cross post?
Se ne parlava proprio qui:
<news:5fchc9ki48as$.dlg@news.di.Giuseppe.invalid>.
-- 
Saluti,
GIUSEPPE C. ~ news:it-alt.scienze.biologia.botanica
Per rispondere in privato togli "vulgarisL." dall'indirizzo.


Ma mi da questo errore alla prima riga:
[Warning] OnBeforeSendingMessage.ds(1:1): Calculation always evaluates
to False
Soluzioni? Grazie
-- 
Joey: "Credo di essermi innamorata di te"
Pacey: "Lo credi o lo sai?"
Joey: "Lo so. Non voglio più scappare, non voglio che tu scappi via da
me"


 Soluzioni?
Chiedevo la stessa cosa (message-ID:
<news:1abfgdaytw3bn$.dlg@news.di.Giuseppe.invalid>). ;-)


 <news:1abfgdaytw3bn$.dlg@news.di.Giuseppe.invalid>). ;-)
Ma dovrebbe funzionare lostesso (credo). Come possiamo risolvere? 
Cammagno-Gandalf (nick corretti), duo dell'infinita sapienza, aiutate
due poveri esseri!
-- 
Joey: "Ho il permesso di salire a bordo?"
Pacey: "Permesso accordato. Che ne dici? Forse è un po' troppo
sdolcinato"
Joey: "True Love! Molto carino. E' dolce"


 due poveri esseri!
Ecco, si fa prima. :-)
Crossposted-To: news:it.comp.software.newsreader,
       news:free.test,
       news:free.test.prova.prova.prova
Followup-To: news:free.it.comp.software.newsreader


 Followup-To: news:free.it.comp.software.newsreader
Perchè non riescono allineati i nomi dei NG?
L'idea sarebbe quella di avere quest'effetto:
Crossposted-To: news:it.comp.software.newsreader,
       		news:free.test,
       		news:free.test.prova.prova.prova
   Followup-To: news:free.it.comp.software.newsreader
 
Come faccio ad ottenerlo? Il mio script è questo:
_________________________________________________
program OnBeforeSendingMessage;
// ** Introduction for XPost/Fup2-Message
// ** change message as you want to
const
    ApplyBoxquote = false;
    MessageXPost = 'Crossposted-To: ';
    MessageFup2  = 'Followup-To: ';
    Indent       = '       ';
    SeparatorXp  = ','+#13+#10+Indent+'news:';
    Fup2poster = 'a me (via email)';
    StartLine      = 'bq';
    Separator = '-';
 
    bq1a=',';
    bq1b='-';
    bq1c='.';
    bq2a='|';
    bq2c='|';
    bq3a=''+#39+'';
    bq3b='-';
    bq3c='''';
 
    LineWidthTop    = 2;
    LineWidthBottom = 2;
 
    // If you set "CloseBox = false;" the boxquote will be not closed
    CloseBox = true;
 
    maxint= 
2147483647
;
 
// ** Begin of code   
Procedure XPost_and_FUp2_Information (var Message: TStringlist;
Servername: string; IsEmail: boolean);
var  
  FUP2,  XPost, Header: boolean;    
  i, SigLine: integer;
  s, Fup2Group, XPostGroups: string;
begin      
  if IsEmail=true then exit;   
  FUP2:=false;
  XPost:=false;  
  Header:=true;
  SigLine:=0;        
  for i:=0 to Message.count-1 do   
    begin;  
    s:= message.strings[i];    
    if s='' then header:=false;      
    if header=true then
      begin;
      if Pos('Followup-To:',s)>0 then    
        begin;
        FUP2:=true;
        Fup2Group:='news:'+copy(s,14,length(s)-12);
        if Pos(',',Fup2Group)>0 then
           Fup2Group:=StringReplace(Fup2Group, ',',  SeparatorXp, 
[rfReplaceAll]);
        if Pos('news:poster',Fup2Group)>0 then
           Fup2Group:=StringReplace(Fup2Group, 'news:poster', 
Fup2poster, [rfReplaceAll]);
//        Fup2Group:=Fup2Group+#13+#10+'-'+#13+#10;
//      WriteToLog(MessageFup2+Fup2Group,1);
        end; 
      if Pos('Newsgroups:',s)>0 then    
        if Pos(',',s)>0 then
          begin;
          XPost:=true;
          XPostGroups:='news:'+copy(s,13,length(s)-11);
          if Pos(',',XPostGroups)>0 then
             XPostGroups:=StringReplace(XPostGroups, ',',  SeparatorXp, 
[rfReplaceAll]);
//          XPostGroups:=XPostGroups+#13+#10+'-'+#13+#10;
//        WriteToLog(MessageXPost+XPostGroups,1);
          end;
      end
    else
      if s='-- ' then                  
        SigLine:=i;
//  WriteToLog('Analysierte Zeile: '+s,1);
    end;    
  if FUP2=true then
    if Sigline=0 then     
      Message.Add(MessageFup2+Fup2Group) 
    else    
      Message.Insert(Sigline,MessageFup2+Fup2Group);
  if XPost=true then
    if Sigline=0 then     
      Message.Add(MessageXPost+XPostGroups) 
    else    
      Message.Insert(Sigline,MessageXPost+XPostGroups);  
  if (FUP2=true) or (XPost=true) then
    if Sigline=0 then     
      Message.Add('') 
    else    
      Message.Insert(SigLine,'');
end;
function StringReplaceM(S, OldPattern, NewPattern: 
string;replaceall,ignorecase:boolean): string;
var
  SearchStr, Patt, NewStr: string;
  Offset: Integer;
begin
  if IgnoreCase then
  begin
    SearchStr := AnsiUpperCase(S);
    Patt := AnsiUpperCase(OldPattern);
  end else
  begin
    SearchStr := S;
    Patt := OldPattern;
  end;
  NewStr := S;
  Result := '';
  while SearchStr <> '' do
  begin
    Offset := AnsiPos(Patt, SearchStr);
    if Offset = 0 then
    begin
      Result := Result + NewStr;
      Break;
    end;
    Result := Result + Copy(NewStr, 1, Offset - 1) + NewPattern;
    NewStr := Copy(NewStr, Offset + Length(OldPattern), MaxInt);
    if not (ReplaceAll) then
    begin
      Result := Result + NewStr;
      Break;
    end;
    SearchStr := Copy(SearchStr, Offset + Length(Patt), MaxInt);
  end;
end;
function RepeatChar(c : char;Count : integer) : string;
var i:integer;
begin
  if count<0 then count:=0;
  SetLength(Result,Count);
  for i:=1 to count do Result[i]:=c;
end;
function CountChars(s : string;c:char) : integer;
var i : integer;
begin
  Result := 0;
  for i := 1 to Length(s) do if s[i]=c then Result:=result+1;
end;
const	s_no_bq=0;
	s_bq_title=1;
	s_bq_content=2;
procedure boxquote(var Message: TStringlist);
var i,j,k:integer;
    state:word;
    bq_startline:integer;
    bq_title:string;
    bq_content:string;
    maxwidth:integer;
    sl:Tstringlist;
begin
state:=s_no_bq;
i:=0;
bq_startline:=-1;
while i<=message.count-1 do
    begin
    case state of
    s_no_bq: begin
    	     if message.strings[i]=StartLine then
    	     	begin
    	     	bq_startline:=i;
    	     	bq_title:='';
    	     	bq_content:='';
    	     	maxwidth:=1;
    	     	state:=s_bq_title;
    	     	end
    	     end;
    s_bq_title: begin
    	     	if message.strings[i]=Separator then state:=s_bq_content
    	     					else bq_title:=trim(bq_title+' '+message.strings[i]);
    		end;
    s_bq_content: begin
    	     	  if message.strings[i]=Separator then
    	     	  	begin
    	     	  	state:=s_no_bq;
    	     	  	if length('['+bq_title+']')>maxwidth then 
maxwidth:=length('['+bq_title+']');
    	     	  	//delete the raw boxquote
    	     	  	for j:=bq_startline to i do message.delete(bq_startline);
    	     	  	//middle part
 
bq_content:=stringreplacem(#13#10+bq_content,#13#10,#13#10+bq2a+' 
',true,false);
    	     	  	delete(bq_content,1,2);
    	     	  	//first line
    	     	  	if bq_title<>'' then 
bq_content:=bq1a+RepeatChar(bq1b,LineWidthTop)+' ['+bq_title+'] 
'+#13#10+bq_content
    	     	  		        else 
bq_content:=bq1a+RepeatChar(bq1b,LineWidthTop)+#13#10+bq_content;
    	     	  	//last line
 
bq_content:=bq_content+#13#10+bq3a+RepeatChar(bq3b,LineWidthBottom);
    	     	  	sl:=Tstringlist.create;
    	     	  	try
			sl.text:=bq_content;
    	     	  	//close the box
    	     	  	if CloseBox then
    	     	  	 for j:=0 to sl.count-1 do
    	     	  	    begin
    	     	  	    k:=maxwidth-length(sl.strings[j]);
			    if j=0 then 
sl.strings[j]:=sl.strings[j]+repeatchar(bq1b,k+3)+bq1c
			    else if j=sl.count-1 then 
sl.strings[j]:=sl.strings[j]+repeatchar(bq3b,k+3)+bq3c
			    else sl.strings[j]:=sl.strings[j]+repeatchar(' ',k+3)+bq2c;
    	     	  	    end;
    	     	  	message.insert(bq_startline,trim(sl.text));
    	     	  	i:=bq_startline;
    	     	  	finally
    	     	  	sl.free;
    	     	  	end;
    	     	  	end
    	     	  	else
    	     	  	begin
    	     	  	if bq_content='' then bq_content:=message.strings[i]
    	     	  			 else bq_content:=bq_content+#13#10+message.strings[i];
    	     	  	if length(message.strings[i])>maxwidth then 
maxwidth:=length(message.strings[i]);
    	     	  	end;
                  end;
    end; //case
    i:=i+1;
    end;
end;
function OnBeforeSendingMessage(var message: TStringlist; Servername: 
string; IsEmail: boolean):boolean;
begin
  XPost_and_FUp2_Information (message, Servername, IsEmail); 
  if (message.count<500) and ApplyBoxquote then boxquote(message);
 
  result := true;
end;
begin
end.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


    Followup-To: news:free.it.comp.software.newsreader
Come non detto: ci sono riuscito da solo. :-)


 Come non detto: ci sono riuscito da solo. :-)
Se già non l'hai fatto, tieni conto che l'allineamento va fatto usando
un font a spaziatura fissa. Altrimenti non ha senso, uno li vedrebbe
allineati solo se usa lo stesso font che hai scelto tu. Invece se lo fai
usando un font monospaced, chiunque usi un font monospaced (qualunque
abbia scelto) vedrà il corretto allineamento.
Se erano cose che già sapevi, fai conto che non abbia detto nulla :)
è che nelle righe quotate i nomi dei ng *non* sono allineati (se non
forse usando il tuo stesso font) per cui mi è venuto il dubbio che non
ci avessi pensato...
-- 
Cammagno


    Followup-To: news:free.it.comp.software.newsreader
Come non detto: ci sono riuscito da solo. :-)
Crossposted-To: news:it.comp.software.newsreader;
                news:free.it.test
   Followup-To: news:it.comp.software.newsreader


 ci avessi pensato...
Certo, hai fatto bene, grazie.


    Followup-To: news:it.comp.software.newsreader
ora invece coi font monospaced è ok :)
[per la cronaca, il mio intervento precedente era riferito ad un post
poi cancellato da Giuseppe C. :) ] 
-- 
Cammagno


 poi cancellato da Giuseppe C. :) ]
Sě, scusate: non prendetelo per pazzo...
Sono io che ho combinato un po' di "sovrascrizioni abusive" perchč mi 
sono scordato di far vedere l'effetto delle modifiche. :-)


 abbia scelto) vedrà il corretto allineamento.
Scusa non ho capito. Io uso Thaoma come font per scrivere i post. E'
un font monospaced? Solo se uso font monospaced (quale per esempio?)
vedrò (e farò vedere) un allineamento corretto? E poi: se io scrivo un
post con front monospaced, colui che legge (e usa font monospaced)
vede "bene"? Se invece il lettore usa font a spaziatura fissa...vede
"male"?
Grazie
-- 
Joey: "Ho sedici anni e finora ci sono state solo due persone che mi
hanno capita veramente. Dawson e ..."
Pacey: "...e questo A.J."
Joey: "Stavo dicendo te, Pacey"


 sono scordato di far vedere l'effetto delle modifiche. :-)
Beh, non erano abusive, erano piů che legittime e sensate :)
Ho solo spiegato a cosa si riferiva il mio post precedente, se no in
effetti parevo sbiellato (*piů* sbiellato, ok :D)


 "male"?
Allora :)
1) "a spaziatura fissa" è la traduzione italiana di "monospaced", per4 
cui sono la stessa cosa :)
2) i font a spaziatura fissa sono costituiti da caratteri che occupano 
tutti lo stesso spazio, mentre quelli a spaziatura variabile (come 
Tahoma) hanno caratteri con "larghezza" diversa (per esempio una "m" è 
"più larga", occupa più spazio di una "i") e per giunta le "larghezze" 
relative dei diversi caratteri variano da font a font. Sono solitamente 
esteticamente più "gradevoli", ma per allineamenti, tabelle ed ASCI-art 
sono di fatto inutilizzabili (vedi dopo). 
3) il carattere con cui tu scrivi non ha, ovviamente, influenza diretta 
su come gli altri visualizzano il tuo post, perchè la loro 
visualizzazione dipende dal font che utilizzano loro
però
se tu fai degli "allinamenti" usando come carattere uno non monospaced, 
inserirai un numero di spazi tale da riempire all'incirca lo spazio che 
ti serve [dico all'incirca perchè per natura stessa dei font a 
spaziatura variabile, spesso non si ottiene un allineamento perfetto, 
dipende dalla combinazione delle "larghezze" dei caratteri che la serie 
di spazi deve riprodurre] ma questo numero di spazi è "giusto" solo per 
chi usa in visualizzazione lo stesso font che hai usato tu in 
composizione. D'altro canto, invece, se usi in composizione un font a 
spaziatura fissa, otterrai sempre un allineamento "perfetto" (perchè la 
dimensione di tutti i caratteri è sempre uguale) e, cosa che più 
importa, chiunque usi in visualizzazione un *qualunque* font monospaced 
vedrà lo stesso allineamento che hai impostato. Ovviamente se chi legge 
usa un font a spaziatura variabile l'allineamento salterà comunque, ma a 
quel punto sarà un "problema suo" e non più tuo :)
Del resto, di solito i newsreader consentono di passare "al volo" dalla 
visualizzazione a spaziatura variabile a quella a spziatura fissa, per 
cui uno può tenere tranquillamente come visualizzazione di defaul quella 
(di solito più gradevole) a spaziatura variabile, per poi passare con un 
clic a quella a spaziatura fissaper un post che lorichieda (cioèun post 
con allineamenti, tabelle, ASCI-art, etc.) Per esempio in Dialog c'è una 
aposita voce del menù Messaggio/Opzioni di visualizzazione del 
messaggio, un apposito pulsante (non ricordo se di default o se l'ho 
aggiunto io personalizzando la toolbar) ed un aposito comando nel menù 
contestuale del post (click destro -> Opzioni di visualizzazione del 
messaggio).
Infine, per sapere quali font sono a spaziatura fissa (e per scegliere 
quello predefinito), basta che vai in:
Impostazioni -> Impostazioni generali -> Font/Colori ->
sotto Font / Spaziatura fissa c'è un elenco a discesa in cui compaiono 
tutti ifont a spaziatura fissa (*solo* quelli a spaziatura fissa, come 
puoi vedere dal confronto con gli altri elenchi, che li contengono 
invece tutti) installati nel tuo sistema.
-- 
Cammagno


 Se invece il lettore usa font a spaziatura fissa...vede "male"?
Che è la stessa cosa che chiedi sopra.
-- 
daRkSidE, 11.11.2004 12:02:31
[07/10 - Getz-Gilberto] Stan Getz & Joao Gilberto: O Grande Amor

 O meglio, fatelo pure, ma non per questa cosa in particolare :D
LOL.


 Se invece il lettore usa font a spaziatura fissa... vede "male"?
Vede "male" o potrebbe vedere "male", nel senso che l'allineamento
potrebbe non risultare corretto.


   Followup-To: news:free.it.comp.software.newsreader
*Non* usare i TAB!
Ciao, Alessio.
-- 
Guide e manuali su Agent: 
http://www.sleepers.it
FAQ di ICS.newsreader: 
http://wiki.news.nic.it/IcsnFaq
Materiale in italiano per Agent: 
http://web.tiscali.it/agentit

 Che è la stessa cosa che chiedi sopra.
Ops, mi ero confuso '^__^'
-- 
Joey: "Io ti sento, Pacey. Questa mattina, a letto mi hai sfiorato col
braccio ed io lo sentito"
Pacey: "Che sensazione ti ha dato?"
Joey: "Mi ha fatto sentire viva"
FREENET & MAIL by X-Privat: 
http://www.x-privat.org/mail.php

 Io uso il "Courier New", a dimensione "10".
Io invece mi trovo bene con Courier New CE a 9
[cut]
Capito, grazie :-)
-- 
Pacey: "Toh! Questo è un replicante, non è possibile che Josephina La
Rompina sia qui, perché ero sicuro che lei avrebbe boicottato questa
serata"


Il 11/11/04 (12.29) nel messaggio
<news:10sone18...@news.cammagno.it.invalid>, *Cammagno* ha
scritto:
[cut]
Grazie per le spiegazione, sei sempre utile :)
-- 
Pacey: "Roba da non credere, Joey, finalmente s'è accorta che esiste
anche l'altro sesso"
Joey: "Spiritoso"
