[cstex] test na prázdný soubor?

Petr Tomasek tomasek at etf.cuni.cz
Thu Aug 27 13:20:17 CEST 2009


On Thu, Aug 27, 2009 at 11:55:06AM +0200, Petr Sojka wrote:
> On Wed, Aug 26, 2009 at 11:30:41PM +0200, Petr Tomasek wrote:
> Dobrý den!
>  
> > Lze, prosím, v plainu nějak snadno otestovat, zda-li daný soubor není
> > prázdný? Tj. jde mi o rozlišení mezi souborem s nulovou délkou
> > a souborem s nějakým obsahem.
> > 
> > Soubor nejpre testuji pomocí \ifeof zda-li vůbec existuje a potom
> > vnořím krz \include. Ovšem potřeboval bych připojit po vnoření
> > souboru "\par", ale pouze, pokud soubor není prázdný.
> > 
> > Napadlo mě použít \read a poté nějak otestovat, zda-li je načtená
> > řádka prázdná. Ovšem to mi nechce fungovat, zkusil jsem toto (jako test):
> > 
> > \def\t#1{%
> > \immediate\openin\fin=#1
> > \ifeof\fin
> >   [#1: FILE NOT FOUND]\par
> > \else
> >  \immediate\read\fin to\fetchoneline
> >  \ifx\fetchoneline\empty
> >    [#1: FILE EMPTY]\par
> >  \else
> >   [#1] \fetchoneline\par
> >  \fi
> > \fi
> > \immediate\closein\fin
> > }
> > 
> > Zdá se, že \read i v případě prázdného souboru do \fetchoneline
> > něco dá.
> Ano, da. Po vypsani toho, co tam TeX da (pres \message) bych
> Vase makro upravil takto:
> 
> \def\emptyfile{\par }
> \def\t#1{%
> \immediate\openin\fin=#1
> \ifeof\fin
>   [#1: FILE NOT FOUND]\par
> \else
>  \immediate\read\fin to\fetchoneline
>  \ifx\fetchoneline\emptyfile
>    [#1: FILE EMPTY]\par
>  \else
>   [#1] \fetchoneline\par
>  \fi
> \fi
> \immediate\closein\fin
> }
> 
> S pozdravem
> Petr Sojka

Dobry den,

dekuji, funguje to dobře.

Docela by mě zajímalo, co vedlo Knutha, aby se TeX takto choval... :o

P.T.

-- 
Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
Jabber: butrus at jabbim.cz
SIP: butrus at ekiga.net



More information about the csTeX mailing list