[cstex] test na prázdný soubor?

Petr Sojka sojka at fi.muni.cz
Thu Aug 27 11:55:06 CEST 2009


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

> Netušíte, prosím, kde dělám chybu, resp. jestli existuje jiný, jednoduchý
> způsob, jak tento test provést?
> 
> Děkuji
> Petr Tomášek
> 
> -- 
> Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
> Jabber: butrus at jabbim.cz
> SIP: butrus at ekiga.net
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex



More information about the csTeX mailing list