Você está aqui: Java ::: Dicas & Truques ::: Entrada e Saída em Arquivos (File Input/Output - IO) |
|
Aprenda a usar o método seek() para posicionar o ponteiro de arquivo da classe RandomAccessFileQuantidade de visualizações: 11786 vezes |
|
Quando estamos efetuando a leitura ou escrita de um arquivo usando um objeto da classe RandomAccessFile, muitas vezes precisamos avançar ou recuar o ponteiro de arquivo, de forma a localizar a posição de escrita ou leitura desejada. Para tal operação a classe RandomAccessFile nos fornece o método seek(). Este método recebe um inteiro informando a posição do ponteiro de arquivo a partir da posição zero do arquivo. Veja um exemplo de seu uso: import java.io.*; public class Estudos{ public static void main(String[] args){ // uma instância de RandomAccessFile para leitura e escrita try{ RandomAccessFile arquivo = new RandomAccessFile("C:\\java\\conteudo.txt", "r"); byte[] buffer = new byte[5]; //vamos posicionar o ponteiro de arquivo no início do arquivo // e ler 5 bytes arquivo.seek(0); arquivo.read(buffer); // vamos exibir o resultado for(int i = 0; i < buffer.length; i++){ System.out.println((char)buffer[i]); } System.out.flush(); System.out.println(); //vamos agora posicionar o ponteiro de arquivo na posição 20 // do arquivo (em bytes) e ler mais 5 bytes arquivo.seek(20); arquivo.read(buffer); // vamos exibir o resultado for(int i = 0; i < buffer.length; i++){ System.out.println((char)buffer[i]); } arquivo.close(); } catch(FileNotFoundException fnfe){ System.out.println(fnfe.getMessage()); } catch(IOException ioe){ System.out.println(ioe.getMessage()); } System.exit(0); } } |
|
Link para compartilhar na Internet ou com seus amigos: | |
Ruby ::: Dicas & Truques ::: Matemática e Estatística |
Como gerar um número inteiro aleatório em Ruby usando a função rand() do módulo KernelQuantidade de visualizações: 7414 vezes |
Nesta dica mostrarei como podemos usar o método rand() do módulo Kernel da linguagem Ruby para gerar um número randômico dentro de uma determinada faixa. No exemplo nós vamos gerar um número aleatório entre 0 e 6 (não incluído). Veja o código completo para o exemplo: # gera um número aleatório entre 0 e 5 numero = rand(6) puts sprintf("O numero aleatório é: %d", \ numero) Ao executar este código Ruby nós teremos o seguinte resultado: O numero aleatório é: 5 |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Tenha cuidado com os limites dos índices de um vetor ou matriz na linguagem CQuantidade de visualizações: 9547 vezes |
Um erro muito comum em programas C ocorre quando não atentamos para os limites dos índices de um vetor ou matriz. Como sabemos, os índices iniciam em 0 e vão até o tamanho do vetor menos 1. Porém, ao contrário de outras linguagens, o C (compiladores sendo usados em 2007 e 2008) não evita que este limite seja ultrapassado. O resultado disso é que o programa acaba lendo posições de memória inexistentes ou pertecentes a outros programas. Veja um trecho de código no qual acessamos uma posição inválida no vetor valores. Este código foi testado no MinGW 3.4.2 e compilou e executou sem qualquer mensagem de advertência. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // array com 5 inteiros int valores[] = {23, 6, 45, 9, 3}; // acessa um índice além dos limites do array // lembre-se de que os índices iniciam em 0 int valor = valores[5]; // exibe o resultado printf("%d\n\n", valor); system("PAUSE"); return 0; } Ao executar este código nós teremos o seguinte resultado (o seu vai ser diferente, é claro): -858993460 Minha recomendação é: se você quer mesmo programar na linguagem C, crie uma forma de impedir o acesso à índices inválidos. Se isso acontecer, os resultados exibidos pelos seus programas poderão ser realmente inesperados. |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma variável do tipo string ainda é null ou vazia em VB.NET usando a função IsNullOrEmpty()Quantidade de visualizações: 14779 vezes |
Em algumas situações nós precisamos verificar se uma variável do tipo String ainda é null ou vazia. Para isso nós podemos usar o método IsNullOrEmpty(). Note que null em VB.NET é representado pela palavra-chave Nothing. Veja o código completo para o exemplo: Imports System Module Program Sub Main(args As String()) Dim var1 As String ' ainda não foi inicializada...é null Dim var2 As String = Nothing ' é null Dim var3 As String = "" ' está vazia If String.IsNullOrEmpty(var1) Then Console.WriteLine("A variável var1 ainda é null ou vazia") End If If String.IsNullOrEmpty(var2) Then Console.WriteLine("A variável var2 ainda é null ou vazia") End If If String.IsNullOrEmpty(var3) Then Console.WriteLine("A variável var3 ainda é null ou vazia") End If Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: A variável var1 ainda é null ou vazia A variável var2 ainda é null ou vazia A variável var3 ainda é null ou vazia |
CSS ::: Dicas & Truques ::: Cores de Fundo e Imagens de Fundo |
Como definir uma imagem de fundo para a página HTML em CSS usando a propriedade background-imageQuantidade de visualizações: 7661 vezes |
Nesta dica mostrarei como usar a propriedade background-image do CSS (Cascading Style Sheet) para aplicar uma imagem de fundo às nossas páginas HTML. Note que, neste exemplo, não controlamos como e se a imagem de fundo será repetida. Em outras dicas dessa seção você aprenderá como isso pode ser feito. Veja o resultado desta dica na figura abaixo: E agora veja o código HTML completo para o exemplo, incluindo a marcação CSS: <html> <head> <title>Estudando CSS</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type="text/css"> body {background-image: url('fundo2.jpg')} </style> </head> <body> </body> </html> |
Lisp ::: LISP para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como converter Coordenadas Cartesianas para Coordenadas Polares em LISP - LISP para EngenhariaQuantidade de visualizações: 389 vezes |
Nesta nossa série de LISP e AutoLISP para Geometria Analítica e Álgebra Linear, mostrarei um código 100% funcional para fazer a conversão entre coordenadas cartesianas e coordenadas polares. Esta operação é muito frequente em computação gráfica e é parte integrante das disciplinas dos cursos de Engenharia (com maior ênfase na Engenharia Civil). Na matemática, principalmente em Geometria e Trigonometria, o sistema de Coordenadas no Plano Cartesiano, ou Espaço Cartesiano, é um sistema que define cada ponto em um plano associando-o, unicamente, a um conjuntos de pontos numéricos. Dessa forma, no plano cartesiano, um ponto é representado pelas coordenadas (x, y), com o x indicando o eixo horizontal (eixo das abscissas) e o y indicando o eixo vertical (eixo das ordenadas). Quando saímos do plano (espaço 2D ou R2) para o espaço (espaço 3D ou R3), temos a inclusão do eixo z (que indica profundidade). Já o sistema de Coordenadas Polares é um sistema de coordenadas em duas dimensões no qual cada ponto no plano é determinado por sua distância a partir de um ponto de referência conhecido como raio (r) e um ângulo a partir de uma direção de referência. Este ângulo é normalmente chamado de theta (__$\theta__$). Assim, um ponto em Coordenadas Polares é conhecido por sua posição (r, __$\theta__$). Antes de prosseguirmos, veja uma imagem demonstrando os dois sistemas de coordenadas: A fórmula para conversão de Coordenadas Cartesianas para Coordenadas Polares é: __$r = \sqrt{x^2+y2}__$ __$\theta = \\arctan\left(\frac{y}{x}\right)__$ E aqui está o código LISP completo que recebe as coordenadas cartesianas (x, y) e retorna as coordenadas polares (r, __$\theta__$): ; programa LISP que converte Coordenadas Cartesianas ; em Coordenadas Polares (let((x)(y)(raio)(theta)(angulo_graus)) ; vamos ler as coordenadas cartesianas (princ "Valor de x: ") (force-output) (setq x (read)) (princ "Valor de y: ") (force-output) (setq y (read)) ; vamos calcular o raio (setq raio (sqrt (+ (expt x 2) (expt y 2)))) ; agora calculamos o theta (ângulo) em radianos (setq theta (atan y x)) ; queremos o ângulo em graus também (setq angulo_graus (* 180 (/ theta pi))) ; e exibimos o resultado (princ "As Coordenadas Polares são: ") (format t "raio = ~F, theta = ~F, ângulo em graus: ~F" raio theta angulo_graus) ) Ao executar este código LISP nós teremos o seguinte resultado: Valor de x: -1 Valor de y: 1 As Coordenadas Polares são: raio = 1.4142135623730951, theta = 2.356194490192345, ângulo em graus = 135.0 Veja que as coordenadas polares equivalentes são (__$\sqrt{2}__$, __$\frac{3\pi}{4}__$), com o theta em radianos. Sim, os professores das disciplinas de Geometria Analítica e Álgebra Linear, Física e outras gostam de escrever os resultados usando raizes e frações em vez de valores reais. |
Veja mais Dicas e truques de Lisp |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |