Ler um arquivo CSV
Tradução automática
Esta página foi traduzida automaticamente do inglês e ainda não foi revisada por um falante nativo; correções são bem-vindas no GitHub. Se algo não bater, vale o original em inglês. O código e os resultados são os mesmos do original, importados dos arquivos testados.
Tarefa: mostrar os clientes ativos de um arquivo CSV, os mais antigos primeiro.
yaml
# Recipe: read a CSV file, typed, filtered and sorted — no database.
paths:
components: ./componentstext
id,name,age,active
1,Ana,28,true
2,Bruno,35,true
3,Carla,42,false
4,Davi,19,yesAs colunas declaradas são tipadas (true, 1, yes e on são um boolean verdadeiro); as outras chegam como texto. q:transform roda as suas operações em ordem.
xml
<q:component name="Customers">
<!-- The path is relative to the app's folder. Declared columns are typed;
the others come as text. -->
<q:data name="customers" source="import/customers.csv" type="csv">
<q:column name="id" type="integer" />
<q:column name="age" type="integer" />
<q:column name="active" type="boolean" />
<q:transform>
<q:filter condition="active" />
<q:sort by="age" order="desc" />
</q:transform>
</q:data>
<ui:window title="Active customers">
<ui:table source="{customers}">
<ui:column key="name" label="Name" />
<ui:column key="age" label="Age" />
</ui:table>
</ui:window>
</q:component>xml
<q:test name="the active customers, oldest first" page="/">
<test:visit />
<test:expect text="Bruno 35 Ana 28 Davi 19" />
<test:expect no-text="Carla" />
</q:test>text
tests/customers.test.q
PASS the active customers, oldest first
1 passed, 0 failedVeja DATA-1 e DATA-3, e Data Import (em inglês).