Newsgroup: it.comp.software.tex
Titolo: Gestione dei file

Allora Giuseppe, ho notato che questo ng č un po morto o mi sbaglio?
Comunque da un lato č proprio un bel vantaggio, si puň parlare in
modo sereno e pacato.
Ecco perchč ho deciso di postare quele macro che mi avevi detto di
postare --
cosě ci saremo divertiti a corregerle-- . Per cui le posto in un sottopost.
Joshwa.

%___________________________________________________________________________
______________
%
%     Definizione Variabili
%
%___________________________________________________________________________
______________
%
  \newwrite\AuxOne    \newread\AuxOne
  \newwrite\AuxTwo    \newread\AuxTwo
  \newwrite\AuxThree    \newread\AuxThree
%
% Variabilie di Tipo Booleano
%
  \newif\ifBool
%
% Variabile di tipo Count, se pari allora si sta scrivendo nel file
% AuxTwo, se e' dispari nel File AuxOne.
%
  \newcount\DisPar% Creo un nuovo registro di tipo count
  \def\ClearDisPar{\DisPar=1\relax}% Macro per la pulizia del registro lo
riporta ad uno
%___________________________________________________________________________
_______________
%___________________________________________________________________________
______________
%
%     Inizializzazione Variabili
%
%___________________________________________________________________________
______________
%
  \def\InitPointers{
     \immediate\openout\AuxTwo=AuxOne
    \ClearDisPar}
%___________________________________________________________________________
______________
%___________________________________________________________________________
______________
%
%     Inserimento Puntatori
%
%___________________________________________________________________________
______________
%
%|Inserimento Puntatore|%
%
 \def\InsertPointer[#1]{
  \pdfdest name{#1} xyz % L' opzione xyz lascia il fattore di Zoom Corrent
  \immediate\write\AuxTwo{#1}
  \immediate\write\AuxTwo{\the\ChapNumb.\the\DefNumb}
}
%___________________________________________________________________________
______________
%___________________________________________________________________________
______________
%
%     Gestione dei Files
%
%___________________________________________________________________________
______________
%
%|Legge la riga da confrontare in AuxThree, dopo averla scritta|%
\def\ReadLine[#1]{
%
% Scrive la parola da confrontare #1 in AuxThree
%
 \immediate\closein\AuxThree%
 \immediate\openout\AuxThree = AuxThree%
 \immediate\write\AuxThree{#1}%
%
% Ora la legge e la memorizza in \CompareWith per poi
% poterla confrontare...
%
 \immediate\closeout\AuxThree % Chiude il file SuppAns
 \immediate\openin\AuxThree = AuxThree%
 \immediate\read\AuxThree to \CompareWith%
 \immediate\closein\AuxThree%
}
%|CopyFile|%
%
% Copia File #1 in File #2
%
  \def\CopyFile[#1] [#2]{
%
    \immediate\closeout\AuxOne%
    \immediate\openin\AuxOne = #1%
%
    \immediate\closein\AuxTwo%
    \immediate\openout\AuxTwo = #2%
%
    \loop%
%
    \immediate\read\AuxOne to \CopyLine%
%
%
    \ifeof\AuxOne\Boolfalse%
    \else\immediate\write\AuxTwo{\CopyLine}\Booltrue%
    \fi%
%
    \ifBool\relax
    \repeat
%
    \immediate\closein\AuxOne%
    \advance\DisPar by 1%Ogni volta che copia il file incrementa il
Contatore
}
%|Ricerca|%
%
% Ricerca parola #1 in file #2
%
\def\Ricerca[#1] [#2]{
%
% Memorizza in \CompareWidth la parola da ricercare
%
  \ReadLine[#1]%
%
  \immediate\closeout\AuxTwo%
  \immediate\openin\AuxTwo = #2%
%
  \loop%
%Preambolo
  \immediate\read\AuxTwo to \Search%
  \ifx \Search\CompareWith%
 % Se sono uguali scorre ancora di una riga e si
 % prende il numero sottostante.
    \Boolfalse \immediate\read\AuxTwo to \Search%
    \else \Booltrue \fi%
%Fine Preambolo
 \ifBool %Se è vero che sono diversi ripeti il ciclo.
    \relax%Searchdopo = \Search
\repeat%
}
%___________________________________________________________________________
____________%
%P.(1)%
% Macro per l'inserimento di puntatori... e per il riferimento ad essi.
% [1] = Nome del puntatore interno   [2]= Nome del puntatore a Video...
\def\RefNumb[#1]{\hskip 1pt %Strataggemma per entrare in modalita'
orizzontale
 %
   \ifodd \the\DisPar%
        \Ricerca[#1] [AuxOne]%
   \else%
        \Ricerca[#1] [AuxTwo]%
   \fi%
    \pdfstartlink
     height 11pt
     depth  3pt
     attr{/C [0.9 0 0] /Border [0 0 0]}
          goto name{#1}
    \startcolor[red]%
     {\SCapIX {\kern -2pt \Search \kern -6pt} \kern -4pt} %{\symbols
\char67}}
     % La parola cercata è memorizzata in Search
   \stopcolor%
   \ifodd \the\DisPar%
       \CopyFile[AuxOne] [AuxTwo]%
   \else%
       \CopyFile[AuxTwo] [AuxOne]%
   \fi%
 \pdfendlink}
%___________________________________________________________________________
______________%
 \def\Reference [#1] [#2]{\hskip 1pt %Strataggemma per entrare in modalita'
orizzontale
   \pdfstartlink
     height 11pt
     depth  3pt
     attr{/C [0.9 0 0] /Border [0 0 0]}
          goto name{#1}
    \startcolor[LinkColour]
     {\symbols \char66}{\SCapIX \thinspace #2\thinspace}%
   \stopcolor
 \pdfendlink}
%___________________________________________________________________________
______________%
\def\OnlyReference [#1] [#2]{\hskip 1pt %Strataggemma per entrare in
modalita' orizzontale
   \pdfstartlink
     height 11pt
     depth  3pt
     attr{/C [0.9 0 0] /Border [0 0 0]}
          goto name{#1}
    \startcolor[LinkColour]
     {\symbols \char66}{(\SCapIX \thinspace #2\thinspace)}%
   \stopcolor
 \pdfendlink}

 così ci saremo divertiti a corregerle-- . Per cui le posto in un sottopost.
Non ho granché da dire, anche se non capisco perché usi due file 
ausiliari AuxOne e AuxTwo ...
Per assicurari di essere in modalità orizzontale, usa \leavevmode, non 
\hskip1pt.
-- 
Giuseppe "Oblomov" Bilotta
Axiom I of the Giuseppe Bilotta
theory of IT:
Anything is better than MS

 \hskip1pt.
Ok, \leavevmode non lo conoscevo proprio come comando, grazie mille.


 visto che leggere il codice così è poco umano :-)
Non è molto documentato ;-)
Cmq non credo sia così importante, no? Ormai sei passato a ConTeXt 
integrale, VERO? ;-)


 integrale, VERO? ;-)
Un po' alla volta. Ora mi sto dedicando un po' a metapost e a metafun ;-)
Credo che il ConTeXt sia una delle più grandi
realizzazioni dell' ingegneria applicata alla preparazione di documenti
elettronici. Soprattutto in quanto ad eleganza. :-)
Il ConTeXt è la realizzazzione di un lavoro organico e pulito. Guardiamo
il LaTeX, una accozzaglia di roba gettata insieme, che nasconde molto spesso
la vera potenzialità del TeX.
Invidio molto Hans, si chiama così vero? Anzi visto che so che hai dei
contatti con lui,
fagli i complimenti da parte mia, anche sei miei complimenti non valgono
molto. :-)
Secondo te per capire bene (Capire e non essere un buon utente) il ConTeXt
non
 è necessario sapere bene il TeX?
Io uso il PlainTeX nei limiti del possibile, perchè anche a me piace
inserire grafici nei
documenti.. sopratutto perchè  è una semplice interfacia ai comandi
primitivi
del TeX. E' quindi a mio parere un ottimo punto di partenza nel'
approfondimento
del TeX. :-)


 approfondimento del TeX. :-)
Un suggerimento, allora: dai un occhio ad eplain. Questo è un formato 
TeX che cerca di combinare la "strutturalità" di LaTeX e ConTeXt con 
una indipendenza da soluzioni preconfezionate. È molto più leggero (ed 
in corrispondenza, meno potente) del ConTeXt.


 svantaggi che ne derivano.
L' avevo scritto io a te, questo paragone Linux etc... ma
poi l' ho cancellao per non urtare la sensibilità di qualcuno :-)

Ok lo farò sicuramente.


 poi l' ho cancellao per non urtare la sensibilità di qualcuno :-)
Ed io sogno che un giorno il diavoletto si vesta di GPL :)
Hi! Sturmtruppen/ingegnere-0.9beta :P
-- 
- Tu sai volare vecchio ?
- Che sciocchezza !! I lupi non volano. 
  Gli uccelli volano,i pesci nuotano e 
    i lupi se ne stanno con i piedi perterra!