Nacitani vstupu ze souboru - problem

Mirek Prochazka xprocha1 at informatics.muni.cz
Mon Feb 21 11:01:59 CET 2000


Dobry den,
pracuji na makru, ktere vysazi tabulku, ktera v nekterych sloupcich nemusi
nutne obsahovat polozky.
Makro na nacitani vstupu jsem prevzal z knizky pana Olsaka Texbook naruby:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%               nacitani vstupu
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\catcode`\^^M=13%
\gdef\tabulka{\bgroup \catcode`\^^M=13 \let^^M=\jedenradek}%
\gdef\jedenradek #1^^M{\def\temp{#1}%
\ifx \temp\posledniradek \def\next ##1 ^^M {\uzavri}%
\else \let\next=\polozka %
\fi \next #1 ^^M }%
\gdef\poslednipolozka{^^M} \gdef\posledniradek{\konectabulka}%
}
\def\polozka #1 {\def\temp{#1}%
\ifx \temp\poslednipolozka \let\next=\jedenradek
\else \prvkytabulky #1 %
\fi \next}

%%%%%%%%%%%%%%%%%%%%
%           makro na rozdelovani do tabulky
%%%%%%%%%%%%%%%%%%%%
\def\prvkytabulky #1:#2;#3;#4;#5{
\def\temp{#1}
\ifx \temp\prvnisl\pridej\data{#4&}
\pridej\akce{#3&}
\else %\rozdeldoradku:\data:\akce:\prvnisl:                %Problemovy radek
\gdef\data{#4&} \gdef\akce{#3&} \pridej\pomkont{\cr }
\fi
\message{>#1-#2-#3-#4-#5<}
\gdef\prvnisl{#1}
}

Problem je v "Problemovem radku". Pokud je makro \rozdeldoradku
zakomentovane, je vse OK.
Ale pokud neni a ma se toto makro provadet tak mne do nej vstupuje nejakym
zpusobem makro \next.
A zde je ten problem. Makro chce stale nacitat vstup i kdyz narazil na
znacku EOF(konec souboru).
Vstup vypada nasledovne:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  soubor tabulka.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\tabulka
0:a;c;ba;0
1:a;c;ab;2
1:b;c;bb;2
2:b;c;a;3
\konectabulka

Vypis LOG souboru:
>0-a-c-ba-0< >1-a-c-ab-2< > \next 2-a-c-a-3<
! Argument of \next has an extra }.
<inserted text>
                        \par


Mohl by mne nekdo poradit v cem mam chybu?

Dekuji Mirek Prochazka





More information about the csTeX mailing list