Ir ao conteúdo
  • Cadastre-se

LuisGCarv

Membro Pleno
  • Posts

    43
  • Cadastrado em

  • Última visita

Tudo que LuisGCarv postou

  1. As partições que o MiniTool Partition Wizard identificou
  2. Eu utilizo o disco rígido de um antigo notebook meu como HD externo para armazenar alguns arquivos importantes, mas ontem teve um problema de inicialização na minha máquina e desde então o HD externo aparece como "G:\ não está acessível. A estrutura do disco está corrompida e ilegível". Quando eu tento passar o CHKDSK, aparece a seguinte mensagem: "O tipo do sistema de arquivos é NTFS. Não é possível determinar a versão do volume e seu estado. CHKDSK anulado." Eu li que esse problema poderia ser resolvido se eu utilizasse um recuperador de partições, então resolvi testar o MiniTool Partition Wizard. Ele identificou partições de diferentes tipos, mas fiquei com receio de selecionar alguma e dar muito errado então decidi saber a opinião de vocês sobre essa situação, o que eu poderia fazer para tentar resolver esse problema?
  3. Então, eu faço Análise e Desenvolvimento de Sistemas e estou tentando desenvolver um aplicativo no Android Studio com algumas funções bem específicas, mas estou encontrando bastante dificuldades. - O aplicativo vai criar arquivos em alguns formatos para o Microsoft Office, então estou tentando adicionar algumas classes e métodos do Apache POI para isso. - Esses arquivos devem ser salvos em pastas compartilhadas ou privadas na nuvem, ai eu estou tentando usar a API do Google Drive para realizar esse processo. O problema é que não existem tantos materiais em português explicando como desenvolver o passo-a-passo dessas funcionalidades e estou tendo problemas na hora de juntar todas elas. Por exemplo, é interessante criar o arquivo utilizando métodos do pacote Java.IO, certo? Mas como é possível chegar até a pasta do Google Drive para salvar lá?
  4. @Thiago Atanazio Muito obrigado, vou dar uma olhada nessas configurações. Pessoal, eu voltei com mais uma duvida. O que vocês acham mais vantajoso?? - processador com velocidade na casa dos 3 ghz e uma memória RAM de 4GB ou - processador com velocidade na casa dos 2ghz e uma memória RAM de 8GB
  5. placa-mãe, processador, HD, fonte, gravador de DVD, cooler, gabinete...praticamente tudo. Acho que não irei comprar memória RAM porque já tenho dois pentes de 4GB cada um.
  6. @Daniel Lee @lnpott Estou pensando seriamente em comprar todas as peças separadas e eu mesmo montar o pc. Depois de saber sobre a completa falta de qualidade dos equipamentos do EasyPC e que a empresa Corpc aparentemente segue a mesma linha de montagem, não me parece nem um pouco viável gastar dinheiro com esses computadores "baratos" já montados. Eu só fiquei com dúvidas em relação às marcas e modelos de HD e de cooler: não existe problema em comprá-los de alguma marca não muito conhecida?
  7. @Daniel Lee @lnpott Vocês poderiam, por favor, me dar sugestões sobre boas marcas/modelos de fonte e placa-mãe?
  8. Ah, eu tenho uma certa noção sim, já troquei fonte e acrescentei memória RAM em pcs meus, só costumo me atrapalhar na parte que fecha o gabinete. haha
  9. Esse dai eu encontrei por R$ 900,00, mas consigo pagar até uns R$ 1.000,00-1.100,00 no momento. Infelizmente eles não me deram muitas informações específicas, só que a placa-mãe possui uma entrada PCI Express 16X, que eles trabalham com vários modelos e fabricantes de componentes e que por isso o modelo e o fabricante dependerão da disponibilidade em estoque, mas que eles sempre seguem informações técnicas descritas no anúncio. Qual processador mais recente você me sugeria? Muito obrigado pela atenção. adicionado 5 minutos depois Eu utilizo quase toda a familia de produtos da Adobe, mas com bem mais frequência o Photoshop pra editar imagens. Para vídeos eu já tentei utilizar o After Effects e o Sony Vegas, mas não consigo usá-los com facilidade no meu atual desktop, então tenho optado pelo Camtasia Studio. Eu preciso utilizar também os aplicativos do Microsoft Office.
  10. Eu estou buscando um desktop que não seja muito básico, mas ele também não precisa ser tão avançado. Eu só necessito de pc em que eu possa editar imagens e vídeos sem grandes problemas, sabe? Além das tarefas de escritório. Eu estava pesquisando preços e notei que os modelos da Corpc estão sendo vendidos em um valor bastante interessante (dentro do meu orçamento), mas gostaria de ter a certeza que não estou jogando dinheiro fora, vocês poderiam por favor me ajudar? A ficha técnica do desktop é a seguinte: placa-mãe = Padrão CorPC - Chipset Intel RedeRede = 10/100/1000 Sistema Operacional = Linux Marca = CorPC Processador = Intel Core i5 Som = High Definition Audio Modelo = 18889 Conexões = VGA, PS2, RJ45, 3x áudio Cachê = 4MB Memória Ram = 6GB Chipset = Intel Modelo do Processador = INTEL CORE I5-650 3.2GHZ HD = 500GB Memória de Vídeo = Intel HD Graphics
  11. Boa noite. Eu estou enfrentando algumas dificuldades com a codificação de uma classe em Java para um trabalho da faculdade. Eu criei uma classe de nome "Emprestimo" e eu estou utilizando-a como classe principal do projeto/pacote, sendo que na parte de chamada dos atributos da classe eu adicionei um campo do tipo "Cliente" e outro do tipo "Livro", ambos referenciando as classes com seus respectivos nomes. O problema surge quando eu tento, na classe "Emprestimo", chamar um método ou atributo de qualquer uma das outras duas classes. Aparece o seguinte erro: Exception in thread "main" java.lang.NullPointerException at D_P.Emprestimo.realizarEmprestimo(Emprestimo.java:20) at D_P.Emprestimo.main(Emprestimo.java:53) Gostaria de saber o que posso estar fazendo de errado. Os métodos e atributos que eu tento chamar não são do tipo private. Todas as três classes possuem um método main, será que o problema está ai? Agradeço desde já pela atenção.
  12. Eu sou iniciante na linguagem C# e encontrei um problema na fase de debug de um programa que acabei de testar. O código não foi criado por mim, ele foi tirado de uma apostila da faculdade, mas aparentemente há algum erro nele ou eu cometi algum erro na hora de configurar o projeto ou a classe. Vocês podem por favor checar qual é o real problema que está causando a mensagem "The name 'InitializeComponent' does not exist in the current context"? A primeira parte do código é do arquivo do Program, a outra é da classe que eu criei com o que encontrei na apostila. using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace TADSWinFormApp { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new ConexADO()); } } } using System; using System.Windows.Forms; using System.Data.OleDb; namespace TADSWinFormApp { public partial class ConexADO : Form { public ConexADO() { InitializeComponent(); } private void ConexADO_Load(object sender, EventArgs e) { string strConnString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DB\Northwind.accdb; Persist Security Info=False;"; OleDbConnection conn = new OleDbConnection(strConnString); conn.Open(); conn.Close(); } } }
  13. Eu utilizo um HD externo para "aliviar" o disco rígido principal do meu computador, mas estou enfrentando problemas com uma pasta específica deste HD externo. Aparece a seguinte mensagem quando tento abrí-la: "D:\Users\... não está acessível. O arquivo ou pasta está corrompido e ilegível". Quando entro nas propriedades, o direito aparece como se estivesse vazio, mas quando escaneio ele com um antivirus, aparece o número de arquivos, subpastas e quantidade de dados sem qualquer problema. Minha questão é bem simples: eu acredito que o problema será resolvido apenas utilizando o comando "chkdsk" do prompt de comando, mas o que eu gostaria de saber mesmo é se é possível utilizá-lo apenas na pasta que está com problemas ou terei que obrigatoriamente pedir para verificar e resolver os erros do disco inteiro. Agradeço desde já pela atenção e compreensão de todos.
  14. @Erciley Junior , eu já tinha tentado esse site antes e encontrei mais problemas ainda do que com o outro. Agradeço de qualquer forma pela ajuda.
  15. Eu sou um estudante iniciante da linguagem SQL e estou tendo que praticá-la montando scripts simples utilizando alguns sites que encontrei utilizando o Google, mas não sei se é suficiente, porque estou encontrando problemas para criar chaves estrangeiras para as tabelas. Alguém saberia me dizer como fazer e se é possível criar chaves estrangeiras no Sqlite Browser? E se não for possível, teria como fazer isso utilizando um programa prático e leve ou até mesmo um outro site com mais recursos? Eu agradeço desde já pela paciência e atenção de vocês.
  16. @DiF , muito obrigado mesmo pelas dicas! Eu não conhecia essa versão Community, como é possível baixá-la? É necessário fazer todo aquele cadastro da página? De qualquer forma eu consegui obter uma licença que eles disponibilizam para estudantes no período que estão fazendo o curso, então eu não sei se é exatamente esse o problema. Eu acabei de desinstalar o programa e instalar em outra pasta e o problema persiste com arquivos mais antigos.
  17. Olá pessoal. Eu não sei se esta é a parte exata do fórum para tentar resolver esse tipo de problema, mas infelizmente não consegui achar um lugar mais específico ou que achei mais próximo do assunto do que este daqui . Então, eu tenho enfrentado alguns problemas com o Astah Professional no últimos dias. Ele funcionava perfeitamente até mais ou menos uma semana atrás, quando eu utilizei ele pra criar alguns diagramas para um trabalho de faculdade. Só que ultimamente eu simplesmente não consigo mais exportar um diagrama como arquivo de imagem (Tools > Export Image > Current Diagram > qualquer uma das opções). Sempre aparece essa mensagem: "Alert - The file could not be saved. Please check the file's permissions, the select path, and ensure that no other applications are using the file." Um outro problema que eu percebi que surgiu na mesma época foi que eu não consigo mais visualizar arquivos .asta mais antigos. O arquivo até chega a abrir, aparece toda a estrutura do diagrama na opção da lateral, mas a tela principal fica toda escura e eu simplesmente não consigo manipulá-lo. Algum de vocês sabe mexer nesse programa e saberia me informar como esses problemas poderiam ser resolvidos? Agradeço desde já pela atenção.
  18. Ah, muito obrigado! As suas alterações fizeram com que o programa lesse todo o arquivo sem travar. Eu não conhecia esse comando da flecha ->, como ele funciona exatamente?
  19. Ah @Mauro Britivaldo , eu consegui resolver parte do problema com essa sua dica, agora não está mais travando exatamente naquela parte, estava faltando atribuir memória pra esse ponteiro CadastroImovel mesmo, só que agora ele lê até uma parte do arquivo e trava no meio. Vou postar o código inteiro dessa vez pra ver se você sabe o que está dando de errado, porque o código não acusa erro algum na hora de compilar, só quando vou executar mesmo. Teve um momento que eu até consegui passar essa fase da leitura dos dados do arquivo sem a travada, mas a leitura dos dados não estava correta, agora ela está correta mas está travando no meio: #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> struct cadastro1 { int codigo; char nome[40], cargo[10]; }; struct cadastro2 { int codigo; char proprietario[40], tipo[16]; }; struct movimentacao { int codigoc1, codigoc2, codigoc3, codigoi; char nome1[40], nome2[40], nome3[40], tipo[10]; }; int opc; int menu(); int cadastroCol(); int cadastroImo(); int orcamento(); int main (void) { int opcao1, loop1; setlocale (LC_ALL,"Portuguese"); do{ opcao1 = menu(); switch(opcao1) { case 1: loop1 = cadastroCol(); break; case 2: loop1 = cadastroImo(); break; case 3: loop1 = orcamento(); break; case 4: loop1 = 2; break; default: printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); break; } }while(loop1 == 1); system ("pause"); return 0; } int menu(void) { int loop2, opcao2; do { printf ("Digite o número da sua opção desejada\nEX: 1\n\n"); printf ("1) Cadastro de colaborador \n"); printf ("2) Cadastro de imóvel \n"); printf ("3) Orçamento de obra \n"); printf ("4) Encerrar o processo\n"); scanf ("%d",&opcao2); loop2 = 0; system ("cls"); if (opcao2 < 1 || opcao2 > 4) { printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); loop2 = 1; } }while(loop2!=0); return opcao2; } int cadastroCol(void) { struct cadastro1 *CadastroColab; int a = -1, b = 1001, c = 2001, d = 3001, aloc = 0, fim, opcao3, opcao4, loop3; FILE *ponteiro; do { printf ("Digite o número da sua opção desejada\nEX: 2\n\n"); printf ("1) Cadastrar um colaborador \n"); printf ("2) Voltar ao menu anterior \n"); printf ("3) Encerrar o processo \n"); scanf ("%d",&opcao3); system ("cls"); switch(opcao3) { case 1: a++; aloc++; CadastroColab = (cadastro1*) calloc(aloc, sizeof(cadastro1)); if (!CadastroColab) { printf("O cadastro infelizmente não poderá ser realizado!\n"); exit(1); } else { printf ("Digite o nome do colaborador : \n"); getchar (); scanf ("%[^\n]s",&CadastroColab[a].nome); do { printf ("\nDigite o número com a área do colaborador\nEX: 3\n\n"); printf ("1) Arquiteto\n"); printf ("2) Engenheiro \n"); printf ("3) Pedreiro \n"); scanf ("%d",&opcao4); system ("cls"); if (opcao4 == 1) { strcpy (CadastroColab[a].cargo,"Arquiteto"); CadastroColab[a].codigo = b; ponteiro = fopen("Cadastroarquiteto.dat", "ab"); fwrite(&CadastroColab[a],sizeof(struct cadastro1), 1, ponteiro); b++; loop3 = 0; } else { if (opcao4 == 2) { strcpy (CadastroColab[a].cargo,"Engenheiro"); CadastroColab[a].codigo = c; ponteiro = fopen("Cadastroengenheiro.dat", "ab"); fwrite(&CadastroColab[a],sizeof(struct cadastro1), 1, ponteiro); c++; loop3 = 0; } else { if (opcao4 == 3) { strcpy (CadastroColab[a].cargo,"Pedreiro"); CadastroColab[a].codigo = d; ponteiro = fopen("Cadastropedreiro.dat", "ab"); fwrite(&CadastroColab[a],sizeof(struct cadastro1), 1, ponteiro); d++; loop3 = 0; } else { printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); loop3 = 1; } } } }while(loop3!=0); } free (CadastroColab); fclose (ponteiro); break; case 2: fim = 1; break; case 3: fim = 2; break; default: printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); } }while(opcao3!=2 && opcao3!=3); return fim; } int cadastroImo(void) { struct cadastro2 *CadastroImovel; int e = -1, f = 4001, g = 5001, h = 6001, fim, opcao5, opcao6, loop4, aloc = 0; FILE *ponteiro; do { printf ("Digite o número da sua opção desejada\nEX: 2\n\n"); printf ("1) Cadastrar um imóvel \n"); printf ("2) Voltar ao menu anterior \n"); printf ("3) Encerrar o processo \n"); scanf ("%d",&opcao5); system ("cls"); switch(opcao5) { case 1: e++; aloc++; CadastroImovel = (cadastro2*) calloc(aloc, sizeof(cadastro2)); if (!CadastroImovel) { printf("O cadastro infelizmente não poderá ser realizado!\n"); exit(1); } else { printf ("Digite o nome do proprietário do imóvel a ser construído: \n"); getchar (); scanf ("%[^\n]s",&CadastroImovel[e].proprietario); do { printf ("\nDigite o número com o tipo de imóvel a ser construído: \nEX: 3\n\n"); printf ("1) Comercial\n"); printf ("2) Construção Civil\n"); printf ("3) Residencial \n"); scanf ("%d",&opcao6); system ("cls"); if (opcao6 == 1) { strcpy (CadastroImovel[e].tipo,"Comercial"); CadastroImovel[e].codigo = f; ponteiro = fopen("Cadastrocomercial.dat", "ab"); fwrite(&CadastroImovel[e],sizeof(struct cadastro2), 1, ponteiro); f++; loop4 = 0; } else { if (opcao6 == 2) { strcpy (CadastroImovel[e].tipo,"Construção Civil"); CadastroImovel[e].codigo = g; ponteiro = fopen("Cadastroconstrucaocivil.dat", "ab"); fwrite(&CadastroImovel[e],sizeof(struct cadastro2), 1, ponteiro); g++; loop4 = 0; } else { if (opcao6 == 3) { strcpy (CadastroImovel[e].tipo,"Residencial"); CadastroImovel[e].codigo = h; ponteiro = fopen("Cadastroresidencial.dat", "ab"); fwrite(&CadastroImovel[e],sizeof(struct cadastro2), 1, ponteiro); h++; loop4 = 0; } else { printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); loop4 = 1; } } } }while(loop4!=0); } free (CadastroImovel); fclose (ponteiro); break; case 2: fim = 1; break; case 3: fim = 2; break; default: printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); } }while(opcao5!=2 && opcao5!=3); return fim; } int orcamento(void) { struct movimentacao *OrcamentoObra; struct cadastro2 *CadastroImovel; struct cadastro1 *CadastroColab; int i = -1, j, k, l, m = -1, n = -1, o = -1, fim, opcao7, opcao8, loop5, aloc = 0; FILE *ponteiro; do { printf ("Digite o número da sua opção desejada\nEX: 2\n\n"); printf ("1) Realizar o orçamento de uma obra \n"); printf ("2) Voltar ao menu anterior \n"); printf ("3) Encerrar o processo \n"); scanf ("%d",&opcao7); system ("cls"); switch(opcao7) { case 1: i++; aloc++; OrcamentoObra = (movimentacao*) calloc(aloc, sizeof(movimentacao)); CadastroImovel = (cadastro2*) calloc(aloc, sizeof(cadastro2)); CadastroColab = (cadastro1*) calloc(aloc, sizeof(cadastro1)); if (!OrcamentoObra) { printf("O orçamento infelizmente não poderá ser realizado!\n"); exit(1); } else { do { printf ("Digite o tipo de imóvel que será realizado o orçamento\nEX: 3\n\n"); printf ("1) Comercial\n"); printf ("2) Construção Civil\n"); printf ("3) Residencial \n"); scanf ("%d",&opcao8); system ("cls"); if (opcao8 == 1) { strcpy (OrcamentoObra[i].tipo,"Comercial"); ponteiro = fopen("Cadastrocomercial.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de imóvel comercial realizado, tente novamente!\n"); system ("pause"); exit (1); } else { printf ("Imóveis Comerciais"); j = 0; while (!feof(ponteiro)) { fread(&CadastroImovel[j],sizeof(struct cadastro2), 1, ponteiro); printf ("\nCódigo = %d\nProprietário = %s\n", CadastroImovel[j].codigo, CadastroImovel[j].proprietario); j++; } printf ("\nDigite o código do imóvel que será realizado o orçamento\n"); scanf ("%d",&OrcamentoObra[i].codigoi); system ("cls"); } } else { if (opcao8 == 2) { strcpy (OrcamentoObra[i].tipo,"Construção Civil"); ponteiro = fopen("Cadastroconstrucaocivil.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de imóvel de construção civil realizado, tente novamente!\n"); system ("pause"); exit (1); } else { printf ("Imóveis de Construção Civil"); k = 0; while (!feof(ponteiro)) { fread(&CadastroImovel[k],sizeof(struct cadastro2), 1, ponteiro); printf ("\nCódigo = %d\nProprietário = %s\n", CadastroImovel[k].codigo, CadastroImovel[k].proprietario); k++; } printf ("\nDigite o código do imóvel que será realizado o orçamento\n"); scanf ("%d",&OrcamentoObra[i].codigoi); system ("cls"); } } else { if (opcao8 == 3) { strcpy (OrcamentoObra[i].tipo,"Residencial"); ponteiro = fopen("Cadastroresidencial.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de imóvel residencial realizado, tente novamente!\n"); system ("pause"); exit (1); } else { printf ("Imóveis Residenciais"); l = 0; while (!feof(ponteiro)) { fread(&CadastroImovel[l],sizeof(struct cadastro2), 1, ponteiro); printf ("\nCódigo = %d\nProprietário = %s\n", CadastroImovel[l].codigo, CadastroImovel[l].proprietario); l++; } printf ("\nDigite o código do imóvel que será realizado o orçamento\n"); scanf ("%d",&OrcamentoObra[i].codigoi); system ("cls"); } } else { printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); loop5 = 1; } } } }while(loop5!=0); } free (CadastroImovel); fclose (ponteiro); ponteiro = fopen("Cadastroarquiteto.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de arquiteto realizado, tente novamente!\n"); system ("pause"); exit (1); } fread(&CadastroColab,sizeof(struct cadastro1), 1, ponteiro); m++; OrcamentoObra[i].codigoc1 = CadastroColab[m].codigo; strcpy (OrcamentoObra[i].nome1 , CadastroColab[m].nome); free (CadastroColab); ponteiro = fopen("Cadastroengenheiro.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de engenheiro realizado, tente novamente!\n"); system ("pause"); exit (1); } fread(&CadastroColab,sizeof(struct cadastro1), 1, ponteiro); n++; OrcamentoObra[i].codigoc2 = CadastroColab[n].codigo; strcpy (OrcamentoObra[i].nome2 , CadastroColab[n].nome); free (CadastroColab); ponteiro = fopen("Cadastropedreiro.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de pedreiro realizado, tente novamente!\n"); system ("pause"); exit (1); } fread(&CadastroColab,sizeof(struct cadastro1), 1, ponteiro); o++; OrcamentoObra[i].codigoc3 = CadastroColab[o].codigo; strcpy (OrcamentoObra[i].nome3 , CadastroColab[o].nome); system ("pause"); system ("cls"); printf ("DADOS DO ORÇAMENTO DA OBRA\n"); printf ("\nTipo de imóvel = %s", OrcamentoObra[i].tipo); printf ("\nCódigo do imóvel = %d", OrcamentoObra[i].codigoi); printf ("\n\nNome do arquiteto = %s", OrcamentoObra[i].nome1); printf ("\nCódigo do arquiteto = %d", OrcamentoObra[i].codigoc1); printf ("\nNome do engenheiro = %s", OrcamentoObra[i].nome2); printf ("\nCódigo do engenheiro = %d", OrcamentoObra[i].codigoc2); printf ("\nNome do pedreiro = %s", OrcamentoObra[i].nome3); printf ("\nCódigo do pedreiro = %d", OrcamentoObra[i].codigoc3); if (OrcamentoObra[i].tipo == "Residencial") { printf ("\nValor total dos gastos = 30.000,00\n"); } else { if (OrcamentoObra[i].tipo == "Comercial") { printf ("\nValor total dos gastos = 60.000,00\n"); } else { if (OrcamentoObra[i].tipo == "Construção civil") { printf ("\nValor total dos gastos = 90.000,00\n"); } } } free (OrcamentoObra); break; case 2: fim = 1; break; case 3: fim = 2; break; default: printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); } }while(opcao7!=2 && opcao7!=3); return fim; } adicionado 34 minutos depois Queria também poder enxugar esse código ao máximo sem perder as operações dele, mas por enquanto a prioridade é fazê-lo não dar erro.
  20. Agora tá dando bug na hora de gravar os dados também. É que eu gostaria de alocar memória em lugar diferente toda vez que eu faço uma interação, mas eu só queria manter enquanto o programa estiver ligado, porque todos os dados coletados serão gravados em arquivos binários. Os arquivos estão sendo gravados normalmente, o programa só estava travando na parte onde eu tento ler o que está escrito nos arquivos, então eu acredito que eu tenha feito algo errado no laço de repetição pra leitura do arquivo, mas eu não tenho ideia do que pode ter sido. Pra ler todo o conteúdo de um arquivo binário você só precisa fazer um while com com a condição !feof(o ponteiro), um fread e o printf?
  21. O código buga nessa parte e todas as partes onde essa sequência de comandos é repetida. strcpy (OrcamentoObra[i].tipo,"Comercial"); ponteiro = fopen("Cadastrocomercial.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de imóvel comercial realizado, tente novamente!\n"); system ("pause"); exit (1); } printf ("Imóveis Comerciais"); j = 0; while (!feof(ponteiro)) { fread(&CadastroImovel,sizeof(struct cadastro2), 1, ponteiro); printf ("\nCódigo = %d\nProprietário = %s\n", CadastroImovel[j].codigo, CadastroImovel[j].proprietario); j++; } printf ("\nDigite o código do imóvel que será realizado o orçamento\n"); scanf ("%d",&OrcamentoObra[i].codigoi); system ("cls"); } Esse laço de repetição pra leitura está certo? Por favor, me ajudem!
  22. A parte do meu código onde eu gravo informações no arquivo binário aparentemente está correta, porque todos os arquivos são criados normalmente e eu consigo adicionar informações a eles e o tamanho é aumentado quase que simultaneamente. Estou com problemas para passar os dados desses arquivos para as variáveis e apresentar na tela, alguém poderia me ajudar a descobrir o que estou fazendo de errado? Na hora que vai mostrar a lista de dados na tela, o programa simplesmente trava. int orcamento(void) { struct movimentacao *OrcamentoObra; struct cadastro2 *CadastroImovel; struct cadastro1 *CadastroColab; int i = -1, j, k, l, m = -1, n = -1, o = -1, aloc = 0, fim, opcao7, opcao8, loop5; FILE *ponteiro; do { printf ("Digite o número da sua opção desejada\nEX: 2\n"); printf ("\n"); printf ("1) Realizar o orçamento de uma obra \n"); printf ("2) Voltar ao menu anterior \n"); printf ("3) Encerrar o processo \n"); scanf ("%d",&opcao7); system ("cls"); switch(opcao7) { case 1: i++; aloc++; OrcamentoObra = (movimentacao*) malloc(aloc * sizeof(movimentacao)); if (!OrcamentoObra) { printf("O orçamento infelizmente não poderá ser realizado!\n"); exit(1); } else { do { printf ("Digite o tipo de imóvel que será realizado o orçamento"); printf ("\nEX: 3\n"); printf ("1) Comercial\n"); printf ("2) Construção Civil\n"); printf ("3) Residencial \n"); scanf ("%d",&opcao8); system ("cls"); if (opcao8 == 1) { strcpy (OrcamentoObra[i].tipo,"Comercial"); ponteiro = fopen("Cadastrocomercial.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de imóvel comercial realizado, tente novamente!\n"); system ("pause"); exit (1); } printf ("Imóveis Comerciais"); j = 0; while (!feof(ponteiro)) { fread(&CadastroImovel,sizeof(struct cadastro2), 1, ponteiro); printf ("\nCódigo = %d\nProprietário = %s\n", CadastroImovel[j].codigo, CadastroImovel[j].proprietario); j++; } printf ("\nDigite o código do imóvel que será realizado o orçamento\n"); scanf ("%d",&OrcamentoObra[i].codigoi); system ("cls"); } else { if (opcao8 == 2) { strcpy (OrcamentoObra[i].tipo,"Construção Civil"); ponteiro = fopen("Cadastroconstrucaocivil.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de imóvel de construção civil realizado, tente novamente!\n"); system ("pause"); exit (1); } printf ("Imóveis de Construção Civil"); k = 0; while (!feof(ponteiro)) { fread(&CadastroImovel,sizeof(struct cadastro2), 1, ponteiro); printf ("\nCódigo = %d\nProprietário = %s\n", CadastroImovel[k].codigo, CadastroImovel[k].proprietario); k++; } printf ("\nDigite o código do imóvel que será realizado o orçamento\n"); scanf ("%d",&OrcamentoObra[i].codigoi); system ("cls"); } else { if (opcao8 == 3) { strcpy (OrcamentoObra[i].tipo,"Residencial"); ponteiro = fopen("Cadastroresidencial.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de imóvel residencial realizado, tente novamente!\n"); system ("pause"); exit (1); } printf ("Imóveis Residenciais"); l = 0; while (!feof(ponteiro)) { fread(&CadastroImovel,sizeof(struct cadastro2), 1, ponteiro); printf ("\nCódigo = %d\nProprietário = %s\n", CadastroImovel[l].codigo, CadastroImovel[l].proprietario); l++; } printf ("\nDigite o código do imóvel que será realizado o orçamento\n"); scanf ("%d",&OrcamentoObra[i].codigoi); system ("cls"); } else { printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); loop5 = 1; } } } }while(loop5!=0); } free (CadastroImovel); fclose (ponteiro); ponteiro = fopen("Cadastroarquiteto.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de arquiteto realizado, tente novamente!\n"); system ("pause"); exit (1); } fread(&CadastroColab,sizeof(struct cadastro1), 1, ponteiro); m++; OrcamentoObra[i].codigoc1 = CadastroColab[m].codigo; strcpy (OrcamentoObra[i].nome1 , CadastroColab[m].nome); free (CadastroColab); ponteiro = fopen("Cadastroengenheiro.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de engenheiro realizado, tente novamente!\n"); system ("pause"); exit (1); } fread(&CadastroColab,sizeof(struct cadastro1), 1, ponteiro); n++; OrcamentoObra[i].codigoc2 = CadastroColab[n].codigo; strcpy (OrcamentoObra[i].nome2 , CadastroColab[n].nome); free (CadastroColab); ponteiro = fopen("Cadastropedreiro.dat", "rb"); if (ponteiro == NULL) { printf ("Nenhum cadastro de pedreiro realizado, tente novamente!\n"); system ("pause"); exit (1); } fread(&CadastroColab,sizeof(struct cadastro1), 1, ponteiro); o++; OrcamentoObra[i].codigoc3 = CadastroColab[o].codigo; strcpy (OrcamentoObra[i].nome3 , CadastroColab[o].nome); system ("pause"); system ("cls"); printf ("DADOS DO ORÇAMENTO DA OBRA\n"); printf ("\nTipo de imóvel = %s", OrcamentoObra[i].tipo); printf ("\nCódigo do imóvel = %d", OrcamentoObra[i].codigoi); printf ("\n\nNome do arquiteto = %s", OrcamentoObra[i].nome1); printf ("\nCódigo do arquiteto = %d", OrcamentoObra[i].codigoc1); printf ("\nNome do engenheiro = %s", OrcamentoObra[i].nome2); printf ("\nCódigo do engenheiro = %d", OrcamentoObra[i].codigoc2); printf ("\nNome do pedreiro = %s", OrcamentoObra[i].nome3); printf ("\nCódigo do pedreiro = %d", OrcamentoObra[i].codigoc3); if (OrcamentoObra[i].tipo == "Residencial") { printf ("\nValor total dos gastos = 30.000,00\n"); } else { if (OrcamentoObra[i].tipo == "Comercial") { printf ("\nValor total dos gastos = 60.000,00\n"); } else { if (OrcamentoObra[i].tipo == "Construção civil") { printf ("\nValor total dos gastos = 90.000,00\n"); } } } free (OrcamentoObra); break; case 2: fim = 1; break; case 3: fim = 2; break; default: printf ("Opção inválida!\nTente novamente\n"); system ("pause"); system ("cls"); } }while(opcao7!=2 && opcao7!=3); return fim; } Resolvi postar apenas a função onde eu faço a leitura, ai se vocês não encontrarem nada para arrumar, eu posto as outras partes do código. Agradeço desde já pela atenção
  23. Eu acho que já consegui arrumar tudo. Como o case não aceita strings, quando eu digitava enter, estava entrando na opção de default, mas eu consegui resolver isso com alguns getchar (); .
  24. Eu consegui acessar as outras opções em outro tópico, nesse não está vindo, fica travado em html. Mas se não tem problema postar assim, então aqui vai: Algoritmo "CadastrarClienteeAutomovel" Tipo Processos = registro Codigo : inteiro Nome, Marca, Modelo, Cor, Ano, Placa, Chassi : caractere fimregistro Var // Seção de Declarações das variáveis Cadastro : Vetor [1..100] de Processos i ,j, n, o, p, q : inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... q := 1 enquanto q = 1 faca escreval ("MENU PRINCIPAL") escreval (" ") escreval ("1- Cadastrar cliente") escreval ("2- Checar um cadastro já realizado") escreval ("3- Fechar o programa") leia (o) limpatela escolha o caso 1 escreval ("Digite o número de clientes a serem cadastrados : ") leia (n) limpatela j := 1 repita i := i + 1 Cadastro[i].Codigo:= i + 1000 escreval ("CADASTRO") escreval (" ") escreval ("Digite o nome do cliente : ") leia (Cadastro[i].Nome) escreval ("Digite a marca do veículo : ") leia (Cadastro[i].Marca) escreval ("Digite o modelo do veículo : ") leia (Cadastro[i].Modelo) escreval ("Digite a cor do veículo : ") leia (Cadastro[i].Cor) escreval ("Digite o ano do veículo : ") leia (Cadastro[i].Ano) escreval ("Digite o código da placa do veículo : ") leia (Cadastro[i].Placa) escreval ("Digite o código de chassi do veículo : ") leia (Cadastro[i].Chassi) j := j + 1 limpatela ate j > n escreval ("Escolha uma opção:") escreval ("1- Voltar ao menu principal") escreval ("2- Fechar o programa") leia (q) limpatela caso 2 se (Cadastro[1].Codigo<1000) então escreval ("Sem clientes cadastrados!") escreval (" ") escreval ("Escolha uma opção:") escreval ("1- Voltar ao menu principal") escreval ("2- Fechar o programa") leia (q) limpatela senao escreval ("CLIENTES CADASTRADOS") escreval (" ") i := 1 enquanto (Cadastro[i].Codigo>1000) faca escreval ("Código : ", Cadastro[i].Codigo) escreval ("Nome do cliente: ", Cadastro[i].Nome) escreval (" ") i := i + 1 fimenquanto escreval ("Digite o código do cliente que você deseja acessar as informações") leia (p) limpatela escreval ("Código : ", Cadastro[p-1000].Codigo) escreval ("Nome do cliente: ", Cadastro[p-1000].Nome) escreval ("Veículo") escreval ("Marca : ", Cadastro[p-1000].Marca) escreval ("Modelo: ", Cadastro[p-1000].Modelo) escreval ("Cor : ", Cadastro[p-1000].Cor) escreval ("Ano : ", Cadastro[p-1000].Ano) escreval ("Placa : ", Cadastro[p-1000].Placa) escreval ("Chassi : ", Cadastro[p-1000].Chassi) escreval (" ") escreval ("Escolha uma opção:") escreval ("1- Voltar ao menu principal") escreval ("2- Fechar o programa") leia (q) limpatela fimse caso 3 limpatela interrompa outrocaso repita escreval ("Opção inválida!") escreval (" ") escreval ("Escolha uma opção:") escreval ("1- Voltar ao menu principal") escreval ("2- Fechar o programa") leia (q) limpatela ate q < 3 fimescolha fimenquanto Fimalgoritmo
  25. o codigo é um pouco grande e eu percebi que coloquei um case dentro de outro, será que pode ser isso? aqui a parte do código até o primeiro case. int controlepag(void) { struct controle pagamento[100]; int a, b, c, fim, op, horas; char o[5]; do { printf ("Escolha uma opção \n"); printf ("\n"); printf ("1) Cadastrar um funcionário \n"); printf ("2) Verificar o cadastro de um funcionário \n"); printf ("3) Voltar ao menu anterior \n"); printf ("4) Encerrar o processo \n"); scanf ("%d",&op); system ("cls"); switch(op) { case 1: pagamento[a].codigo = a + 2001; printf ("Digite o nome do funcionário : \n"); scanf (pagamento[a].nome); printf ("O código do funcionário é %d \n", pagamento[a].codigo); system ("pause"); system ("cls"); strcpy (o,"A"); while (o!="D") { printf ("Selecione um serviço que o funcionário realizou : \n"); printf ("A) 1M \n"); printf ("B) 2S \n"); printf ("C) 3F \n"); printf ("D) Encerrar cálculo de salário \n"); scanf ("%s",&o); system ("cls"); switch (o) { case "A" : printf ("Quantas horas o funcionário trabalhou nesse setor : \n"); scanf ("%d",&horas); pagamento[a].salario += horas * 100; break; case "B" : printf ("Quantas horas o funcionário trabalhou nesse setor : \n"); scanf ("%d",&horas); pagamento[a].salario += horas * 200; break; case "C" : printf ("Quantas horas o funcionário trabalhou nesse setor : \n"); scanf ("%d",&horas); pagamento[a].salario += horas * 300; break; case "D" : printf ("Cálculo encerrado! \n"); printf ("\n"); system ("pause"); system ("cls"); break; default : printf ("Opção inválida! Tente novamente. \n"); printf ("\n"); system ("pause"); system ("cls"); break; } } a += 1; break; O problema aparece no switch (o).

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

×
×
  • Criar novo...