O Scilab permite a leitura e escrita de dados de arquivos. Dentre algumas formas mais funcionais, inclue-se:
Esta forma exige o uso de arquivos do Excel de versões anteriores (versão 97-2003). O comando readxls
permite acessar o arquivo de Excel.
sheets = readxls(caminho_do_arquivo)
Quem desejar, podem consultar demonstrações em vídeo neste link. .
Os arquivos podem ser lidos rapidamente com o comando csvRead
. É conveniente que os arquivos sejam salvos no formato .csv, com um separador escolhido (vírgula ou ponto-e-vírgula). De forma genérica, sugere-se que os arquivos sejam abertos no formato de texto, e havendo necessidade, converta-se posteriormente na programação os dados correspondentes a números na forma numérica no Scilab. Considere um exemplo.
Considere o arquivo de dados termodinâmicos salvo como DadosTermodinamicos.csv. Os seguintes comandos permitem extrair todos os dados e converter os dados numéricos em valores numéricos
// caminho do arquivo (ajuste o caminho para o seu caso)
arquivo = 'C:\Users\User\Desktop\DadosTermodinamicos.csv'
// leitura do arquivo
Dd = csvRead(arquivo, ';' , [], "string")
// recupera os nomes dos compostos
nomes = Dd(2:$,1)
// recupera os coeficientes para o cálculo de Cp da fase gás, convertendo-os em números com o comando strtod
coefCpG = strtod(Dd(2:$,3:6))
// assim poderíamos prosseguir...
Algumas formas são possívels. Dentre elas, o uso dos comandos mgetl(fd,texto)
e mputl(txt, fd)
, respectivamente, para leitura e escrita dos textos. No caso da leitura de arquivos, a função meof(fd)
pode ser utilizada para verificar o final de um arquivo. A variável fd
correponde à descrição do arquivo, obtida com o comando mopen()
Vejamos um exemplo.
Consdere um arquivo de texto origem.txt
(baixe aqui) que contenha números de 1 a 10 (um número em cada linha). Deve-se passar os dados deste arquivo para outro arquivo chamado destino.txt
. O seguinte código em Scilab faz isto
arq1 = 'C:\Users\User\Desktop\origem.txt'
arq2 = 'C:\Users\User\Desktop\destino.txt'
// abre o arquivo
fd1 = mopen(arq1)
fd2 = mopen(arq2,'wt') // a opção 'wt' cria uma arquivo se não houver.
// contador de linhas
i = 0;
// enquanto não chega ao final do arquivo origem.txt
while ~meof(fd1) do
// lê a próxima linha
txt = mgetl(fd1,1);
// escreve a linha na tela
disp(txt)
// escreve a linha no arquivo destino.txt
mputl(txt,fd2)
// atualiza o número de linhas lidas
i = i + 1;
end
// fecha os arquivos
mclose(fd1)
mclose(fd2)
Com o comando save(arquivo,variaveis)
podemos salvar dados de variáveis. Havendo necessidade, podemos carregá-las com o comando load(arquivo)
. Vejamos um exemplo.
// caminho do arquivo onde será salvo
arq = 'C:\Users\User\Desktop\variaveis.dat'
// matriz
M = [ [2, 1, 3;
4, -4, 0]]
// vetor
v = [3, 4, 5]
// texto
txt = 'Scilab Sim!!!!'
// juntando tudo numa lista
lst = list(M,v,txt)
// salvando
save(arq,'lst')
// limpando tudo
clear
// recuperando o nome do arquivo
arq = 'C:\Users\User\Desktop\variaveis.dat'
// verificando se existe alguma variável chamada 'lst', veremos que não
isdef('lst')
// carregando
load(arq)
// escreva a variavel lst na memória
lst