[cstex] import dat z externeho suboru do latexu - csvtools aleboine??

Petr Olsak petr at olsak.net
Tue Oct 11 15:27:51 CEST 2011


Dobry den,

pokud mate ,,dostatecne male`` csv, pak ho muzete do pameti TeXu nacist 
cele a pak vyuzit skutecne nahodny pristup k datum. Nize ukazuji, jak 
bych to udelal za pouziti makra scancsv.tex:

---------------------------

\input scancsv

\def\saveall{\colnum = 0
    \loop
       \advance\colnum by1
       \expandafter\xdef\csname u:\the\numline:\the\colnum\endcsname
          {\csname e:\csname c:\the\colnum\endcsname\endcsname}%
       \ifnum\colnum < \maxcolumn \repeat
}
\let\lineaction=\saveall

\def\u[#1,#2]{\expandafter\ifx \csname u:#1:#2\endcsname \relax
      out of range%
   \else \csname u:#1:#2\endcsname \fi
}

\scanbase excel.csv

\u[3,3], \u[1,1], \u[4,5], \u[18,12], \u[7,1].

----------------------------

Poznamka: moje ukazka nema s LaTeXem prilis moc spolecneho, ale fungovat 
by mozna v nem mohla. Testoval jsem to v plainu.

Dalsi mozne vylepseni: Pomoci \r[3,3], \r[1,1], \r[4,5], \r[18,12], 
\r[7,1] pred nactenim csv souboru date najevo, ktere polozky Vas zajimaji, 
takze nebudete do pameti TeXu nacitat vsechno:

----------------------------

\def\r[#1,#2]{\expandafter \def\csname r:#1:#2\endcsname{}}

\def\savesome{\colnum = 0
    \loop
       \advance\colnum by1
       {\expandafter \ifx \csname r:\the\numline:\the\colnum\endcsname \relax
        \else
          \expandafter\xdef\csname u:\the\numline:\the\colnum\endcsname
            {\csname e:\csname c:\the\colnum\endcsname\endcsname}\fi}%
       \ifnum\colnum < \maxcolumn \repeat
}
\let\lineaction=\savesome

------------------------------

Zdravim

Petr Olsak




On Tue, 11 Oct 2011, peter knezel wrote:

> vdaka za info a za analyzu problemu. Nemal som v plane spracovat mohutne csv
> subory, islo mi teraz cisto o moznost "quasi-random" importu hociktoreho
> [i,j]-teho prvku.
> Predstavte si obycajnu excelovsku tabulku velkosti 10x10. Kazde pole
> obsahuje kvantum textu, napriklad opis dajakeho zariadenia, cize nie je tam
> iba jedno slovo ale povedzme viac viet.
> A teraz nechce sa mi pracne kopirovat tieto prvky do vysledneho pdf
> dokumentu, ale chcem napriklad si zapamatat obsah poli [3,2], [4,3], [4,7],
> [8,6], [8,7] a [10,10] a tie vlozit
> do dokumentu.
> Nejde teraz o spatne vracanie sa do predchadzajucih riadkov.
>
>
> myslite si, ze by som mohol dajako pouzit prikazy csvromnumber a csvlinenum
> z baliku csvtools, ktore by mi umoznili uchovat hodnotu konkretneho pola
> alebo poli a neskorsie by som ich pouzil?
> A to vsetko priamo v zdrojovom latexovom kode xxx.tex?
>
> S pozdravom,
>
> peter knezel




More information about the csTeX mailing list