-
Posts
57 -
Cadastrado em
-
Última visita
Reputação
0-
Tem como ligar um HD de pc no notebook??
percautus respondeu ao tópico de ma_prudencio em HD, SSD e NAS
voce pode comprar um daqueles gabinetes que permitem que um HD IDE seja lido através da USB. Por exemplo:http://www.maxxtro.com.br/storages/speed3500s/index.htm -
Impressora multifuncional HP imprimindo em branco
percautus respondeu ao tópico de vitor.cris em Impressoras, scanners e multifuncionais
Imprimir folha em branco pode ser o cartucho ou algum problema de driver ou configuração. Para tirar a dúvida sobre o cartucho, experimente fazer uma cópia sem imprimir (com a impressora desligada do micro). A folha está bem posicionada para ser puxada pela multifuncional? O papel está bem seco? -
Antes de inserir o registro, teste se o codigo já existe. Vai ter que fazer uma função que varre o arquivo inteiro, e retorna a existência daquele código. Existindo, você pode dar a opção para alterar o registro ou informar outro código para inclusão. É um procedimento normal em aplicações de cadastro...
-
Vamos lá: 1) Primeiro seu arquivo deve estar aberto para leitura e gravação FILE * meuarq; meuarq = fopen("jogos.dat", "r+b"); 2) Chamar a função informando o código do registro a ser alterado: alterar(meuarq, 10); // por exemplo, alterar o registro de codigo 10 3) Modifiquei (em vermelho) o seu código para: void alterar(FILE *pont, int codigo) { struct jogo cad; int sucesso=0; [COLOR="Red"] int posicao = 0; // inicio do arquivo // usar fseek para ir ao inicio do arquivo pois // voce pode estar adiante do registro que quer alterar fseek(pont, posicao, SEEK_SET); [/COLOR] do { if (fread(&cad,sizeof(struct jogo),1,pont) == 0) break; if (cad.codigo == codigo) { system("cls"); printf("<<<<<Registro Antigo>>>>>\n\n"); printf("Codigo............: %d\n",cad.codigo); printf("Jogo..............: %s\n",cad.nome_jogo); printf("Plataforma........: %s\n",cad.plataforma); printf("Desenvolvedor'a'..: %s\n",cad.desenvolvedor_a); printf("Ano...............: %d\n\n",cad.ano); printf("<<<<<Digite o Registro novo>>>>\n\n"); printf("Código..........: "); scanf("%d", &cad.codigo); fflush(stdin); printf("Nome do Jogo....: "); gets(cad.nome_jogo); printf("Plataforma......: "); gets(cad.plataforma); printf("Desenvolvedor'a': "); gets(cad.desenvolvedor_a); fflush(stdin); printf("Ano.............: "); scanf("%d", &cad.ano); fflush(stdin); cad.deletado=0; [COLOR="red"] // quando você le o arquivo o ponteiro se desloca. // é necessario voltar para a posicao anterior a // da leitura que é onde o registro começa fseek(pont, posicao, SEEK_SET); // agora sim, podemos gravar // e é melhor o sucesso estar condicionado a // correta gravacao do registro (abaixo) [/COLOR] sucesso= fwrite(&cad,sizeof(struct jogo),1,pont) == sizeof(struct jogo); break; } [COLOR="Red"] // ajustar posicao em relação ao inicio do arquivo posicao = posicao + sizeof(struct jogo); [/COLOR] } while(1); if (!sucesso) printf("Jogo não encontrado no arquivo\n"); system("pause"); } Uma observação: 1) Não acho legal permitir trocar de código. Acho que é isto. Vamos ver se funciona...
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais