> |
|
O comando mais completo para leitura de arquivos no formato de colunas é
fscanf
, cuja sintax é
fscanf( "Nome de Arquivo entre aspas", "formato de leitura")
O nome de arquivo deve vir entre aspas duplas, por exemplo, "arquivo1.dat", e neste caso deve estar no mesmo diretório da worksheet. Se o arquivo estiver em outro diretório, é necessário dar o caminho completo, por exemplo, "/home/users/arquivo1.dat". Não é permitido usar a barra invertida simples "\".
O "formato de leitura" é da forma "%s%d%f" para ler no formato string, integer digit, floating point, respectivamente, se o arquivo tive 3 colunas.
O comando
fscanf
lê uma linha do arquivo por vez e gera uma lista com o conteúdo da linha. Esta lista deve ser gravada em uma variável de nome , por exemplo. O número de elementos de é o número de colunas do arquivo. Cada vez que
fscanf
é chamado a próxima linha é lida. Ao ler a última linha do arquivo, o comando
fscanf
retorna [ ] ou 0.
Exemplo 2: Suponha que o arquivo de dados, cujo nome é arquivo1.dat, seja composto de três colunas (igual ao do Exemplo 1). As duas primeiras colunas são os índices de uma matriz e a terceira coluna guarda as respectivas entradas:
1 1 4.78753418
1 2 0.48770202
1 3 0.63493408
2 1 2.73440760
2 2 3.16179623
2 3 4.52895969
3 1 1.39249109
3 2 4.56687928
3 3 4.07361843
Os comandos para ler o arquivo arquivo1.dat e criar a matriz usando o comando
fscanf
é
> |
|
> |
|
|
(2.3) |
> |
|
> |
|
> |
|
> |
|
> |
|
> |
|
|
(2.4) |
> |
|
Leitura de arquivos de dados sem formato de colunas
Para arquivos cujos dados não estão dispostos em colunas, é melhor usar o comando
readline
. A vantagem desta segunda forma é que podemos ler todo arquivo evitando erros na interpretação dos dados e truncagem na leitura. Porém, todos os dados vão estar no formato string. A sintax do comando
readline
é
readline( "Nome do Arquivo" )
> |
|
> |
|
> |
|
> |
|
> |
|
> |
|
> |
|
|
(3.1) |
Note que todo o arquivo foi lido e cada linha foi gravada. Por exemplo, a primeira linha é
> |
|
|
(3.2) |
Note que a linha foi lida no formato string. Agora podemos usar diversos comandos do Maple para converter estas linha em dados manipuláveis. Por exemplo, podemos usar o comando
sscanf
, cuja sintax é parecida com o comando
fscanf
, porém o primeiro argumento deve ser um string. Por exemplo
> |
|
|
(3.3) |
Podemos agora gerar a matrix da seguinte forma
> |
|
> |
|
> |
|
> |
|
> |
|
> |
|
|
(3.4) |
Se o comando
sscanf
não resolve a conversão, podemos usar comandos de manipulação de strings do pacote
StringTools
. Suponha que temos uma data no formato "dd/mm/aaaa" e queremos ter acesso aos números que compõem esta data:
> |
|
|
(3.5) |
> |
|
> |
|
|
(3.6) |
> |
|
|
(3.7) |
> |
|
Leitura e gravação de planilhas Excel
Para ler a gravar planilhas devemos carregar o pacote
ExcelTools
.
> |
|
> |
|
|
(4.1) |
Atenção: Como foi escrito acima, para evitar o doloroso processo de descobrir e escrever corretamente a cadeia de diretórios, o usuário deve gravar a folha de trabalho (worksheet) no mesmo diretório onde a planilha está. Depois deve fechar a folha de trabalho e abrir novamente dando clique-duplo no nome da folha de trabalho. Depois deste processo, o diretório default de leitura e gravação é o diretório da folha de trabalho.
Vamos começar com um exempo de gravaçao de uma folha da planilha. Suponha que temos a seguinte matrix
> |
|
|
(4.2) |
Note que as entradas são números e
strings
. Se houver variáveis (sem aspas duplas) elas serão convertidas em
strings
. Para exportar esta matrix no formato de uma planilha Excel de nome , usamos o comando
Export
.
> |
|
O terceiro argumento é o nome da folha da planilha. O arquivo "example.xls" será salvo no mesmo diretório desta folha de trabalho (worksheet).
Suponha que temos uma segunda matrix.
> |
|
|
(4.3) |
Podemos salvar na mesma planilha em uma segunda folha.
> |
|
Vamos agora fazer o processo inverso, isto é, vamos trazer os dados da planinha para dentro da worksheet. A planilhas devem estar no mesmo diretório da worksheet, caso contrário será necessário dar o caminho completo do arquivo. Vamos recomeçar limpando a memória e recarregando o pacote.
> |
|
> |
|
|
(4.4) |
Para certificar que a planilhas estão no diretório correto podemos dar o comado
> |
|
|
(4.5) |
O comando
system
serve para dar acesso ao sistema operacional subjacente. A sintax é system(" nome_do_comando ") onde nome_do_comando é um comando do sistema operacional da máquina do usuário. O resultado do comando
system
é irrelevante, porém no caso acima o comando gera um nova janela com a lista de arquivos do diretório default (o diretório que contém a worksheet).
Para importar uma folha da planilha usamos o comando
Import
.
> |
|
|
(4.6) |
Podemos também ler uma parta da folha, por exemplo, da a partir da primeira coluna e segunda linha (a2) até a terceira coluna e terceira linha (c3).
> |
|
|
(4.7) |
Podemos ser a segunda folha.
> |
|
|
(4.8) |
> |
|
Datas podem ser convertidas em número de dias (a partir do começo do século XX), por exemplo, dia 7 de janeiro de 2013 é convertido em
> |
|
|
(4.9) |
Para converter de volta, podemos usar o seguinte procedimento: