Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Pascal, erase file não apaga


Posts recomendados

Olá, realizando um programa para cadastro de clientes em File notei que algumas vezes o programa se recusa a apagar a database se for solicitado.

Alguém consegue dar uma força?

Lá embaixo na opção 7:

 

(Iniciante em pascal aqui.)

Program Pzim ;
	uses 
		crt;
	type
		funcionario = record
		matricula:integer;
		nome:string[50];
		cpf:string;
		rg:integer;
		titulo:integer;
		cnh:String;
		cep:integer;
		endereco:string;
		bairro:string;
		cidade:string;
		pais:string;
		sexo:char;
		uf:string[2];
		estadocivil:string;
		email:string;
		telefone:integer;
		dataa:integer;
		datad:integer;
		status:string;
	end;
	type
		dependente = record
		nome:string;
		matricula:integer;
		cpf:integer;
	end;
	const maxli=2000;
	var op,opc,mat,opr:integer; 
    	fu:funcionario;
    	de:dependente;
    	arquivo: file of funcionario;
    	dep:array[1..maxli] of dependente;
	  	func:array[1..maxli] of funcionario;
	 
			Procedure Imprimir;	 
			var linha,contador,mtt,mtt2:integer;
		begin				
					assign(arquivo, 'C:\tete\armazem.dat');
						{$I-} reset(arquivo); {$I+};
						  if ioresult <> 0 then
							  begin
							    writeln;
							    write(' Nada encontrado no arquivo!');
							    delay(1000);
							  end
						  else
							  begin
							seek(arquivo, 0);
						while not eof(arquivo) do
							  begin
							    read(arquivo, fu);
							 	textbackground(white);
					for mtt2:=1 to filesize(arquivo) do
						begin	
						gotoxy(05,linha+05);		textcolor(white);		textbackground(white);		write('                                     ' );// Início do fundo branco
						gotoxy(05,linha+06);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+07);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+08);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+09);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+10);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+11);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+12);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+13);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+14);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+15);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+16);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+17);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+18);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+19);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+20);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+21);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+22);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+23);		textcolor(white);		textbackground(white);		write('                                     ' );
						gotoxy(05,linha+24);		textcolor(white);		textbackground(white);		write('                                     ' );// Final do fundo branco
					  gotoxy(05,linha+05);		textbackground(cyan );		write(' ··································· ' );//Início das bordas
						gotoxy(05,linha+06);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+06);		textbackground(cyan );		write('· '                                    );
						gotoxy(05,linha+07);		textbackground(cyan );		write(' ··································· ' );
						gotoxy(05,linha+08);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+08);		textbackground(cyan );		write('· '                                    );		
						gotoxy(05,linha+09);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+09);		textbackground(cyan );		write('· '                                    );		
						gotoxy(05,linha+10);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+10);		textbackground(cyan );		write('· '                                    );		
						gotoxy(05,linha+11);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+11);		textbackground(cyan );		write('· '                                    );	
						gotoxy(05,linha+12);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+12);		textbackground(cyan );		write('· '                                    );		
						gotoxy(05,linha+13);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+13);		textbackground(cyan );		write('· '                                    );		
						gotoxy(05,linha+14);		textbackground(cyan ); 		write(' ·'                                    );
					  gotoxy(40,linha+14);		textbackground(cyan ); 		write('· '                                    );		
						gotoxy(05,linha+15);		textbackground(cyan ); 		write(' ·'                                    );
					  gotoxy(40,linha+15);		textbackground(cyan ); 		write('· '                                    );
						gotoxy(05,linha+16);		textbackground(cyan ); 		write(' ·'                                    );
					  gotoxy(40,linha+16);		textbackground(cyan ); 		write('· '                                    );							
						gotoxy(05,linha+17);		textbackground(cyan ); 		write(' ·'                                    );
					  gotoxy(40,linha+17);		textbackground(cyan ); 		write('· '                                    );
						gotoxy(05,linha+18);		textbackground(cyan ); 		write(' ·'                                    );
					  gotoxy(40,linha+18);		textbackground(cyan ); 		write('· '                                    );
						gotoxy(05,linha+19);		textbackground(cyan ); 		write(' ·'                                    );
					  gotoxy(40,linha+19);		textbackground(cyan ); 		write('· '                                    );
						gotoxy(05,linha+20);		textbackground(cyan ); 		write(' ·'                                    );
					  gotoxy(40,linha+20);		textbackground(cyan ); 		write('· '                                    );
						gotoxy(05,linha+21);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+21);		textbackground(cyan );		write('· '                                    );
						gotoxy(05,linha+22);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+22);		textbackground(cyan );		write('· '                                    );					
						gotoxy(05,linha+23);		textbackground(cyan );		write(' ·'                                    );
					  gotoxy(40,linha+23);		textbackground(cyan );		write('· '                                    );					
						gotoxy(05,linha+24);		textbackground(cyan );		write(' ·'                                    );
						gotoxy(40,linha+24);		textbackground(cyan );		write('· '                                    );
						gotoxy(05,linha+25);		textbackground(cyan );		write(' ·'                                    );
						gotoxy(40,linha+25);		textbackground(cyan );		write('· '                                    ); 
						gotoxy(05,linha+26);		textbackground(cyan );		write(' ·'                                    );
						gotoxy(40,linha+26);		textbackground(cyan );		write('· '                                    ); 
						gotoxy(05,linha+27);		textbackground(cyan );		write(' ·'                                    );
						gotoxy(40,linha+27);		textbackground(cyan );		write('· '                                    );
						gotoxy(05,linha+28);		textbackground(cyan );		write(' ··································· ' );//Final das bordas
						gotoxy(17,linha+06);		textbackground(white);		textcolor(black);			write('   IMPRESSÃO     ');// Título da tela
						gotoxy(08,linha+08);		textbackground(white);		textcolor(black);			write('Matrícula: '        	       );//Opções da tela
						gotoxy(08,linha+09);		textbackground(white);		textcolor(black);			write('Nome: _________________________');
						gotoxy(08,linha+10);		textbackground(white);		textcolor(black);			write('CPF: __________________________');
						gotoxy(08,linha+11);		textbackground(white);		textcolor(black);			write('RG: ___________________________');
						gotoxy(08,linha+12);		textbackground(white);		textcolor(black);			write('Título: _______________________');
						gotoxy(08,linha+13);		textbackground(white);		textcolor(black);			write('CNH: __________________________');
						gotoxy(08,linha+14);		textbackground(white);		textcolor(black);			write('CEP: __________________________');
						gotoxy(08,linha+15);		textbackground(white);		textcolor(black);			write('Endereço: _____________________');
						gotoxy(08,linha+16);		textbackground(white);		textcolor(black);			write('Bairro: _______________________');
						gotoxy(08,linha+17);		textbackground(white);		textcolor(black);			write('Cidade: _______________________');
						gotoxy(08,linha+18);		textbackground(white);		textcolor(black);			write('País: _________________________');
						gotoxy(08,linha+19);		textbackground(white);		textcolor(black);			write('Sexo: _________________________');
						gotoxy(08,linha+20);		textbackground(white);		textcolor(black);			write('UF: ___________________________');
						gotoxy(08,linha+21);		textbackground(white);		textcolor(black);			write('Estado Civil: _________________');
						gotoxy(08,linha+22);		textbackground(white);		textcolor(black);			write('E-mail: _______________________');
						gotoxy(08,linha+23);		textbackground(white);		textcolor(black);			write('Telefone: _____________________');
						gotoxy(08,linha+24);		textbackground(white);		textcolor(black);			write('Data de admissão: _____________');
						gotoxy(08,linha+25);		textbackground(white);		textcolor(black);			write('Status: _______________________');
						gotoxy(10,linha+26);		textbackground(white);		textcolor(red);				write('                          ');	
	 			   inc(linha,22);
				 	op:=0;
				 	close(arquivo);
				 end;
				end;
		end;		 
	 end; 	
 	Procedure FundoBranco;
 		begin
 			textbackground(white);
			clrscr;
			gotoxy(05,05);	textcolor(white);			textbackground(white);		write('                                     ' ); 
			gotoxy(05,06);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,07);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,08);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,09);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,10);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,11);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,12);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,13);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,14);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,15);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,16);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,17);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,18);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,19);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,20);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,21);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,22);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,23);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,24);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,25);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,26);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,27);	textcolor(white);			textbackground(white);		write('                                     ' );
			gotoxy(05,28);	textcolor(white);			textbackground(white);		write('                                     ' );
 		end;
	Procedure Bordas;
		begin
			gotoxy(05,05);		textbackground(cyan );		write(' ··································· ' );
			gotoxy(05,06);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,06);		textbackground(cyan );		write('· '                                    );
			gotoxy(05,07);		textbackground(cyan );		write(' ··································· ' );
			gotoxy(05,08);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,08);		textbackground(cyan );		write('· '                                    );		
			gotoxy(05,09);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,09);		textbackground(cyan );		write('· '                                    );		
			gotoxy(05,10);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,10);		textbackground(cyan );		write('· '                                    );		
			gotoxy(05,11);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,11);		textbackground(cyan );		write('· '                                    );	
			gotoxy(05,12);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,12);		textbackground(cyan );		write('· '                                    );		
			gotoxy(05,13);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,13);		textbackground(cyan );		write('· '                                    );		
			gotoxy(05,14);		textbackground(cyan ); 		write(' ·'                                    );
			gotoxy(40,14);		textbackground(cyan ); 		write('· '                                    );		
			gotoxy(05,15);		textbackground(cyan ); 		write(' ·'                                    );
			gotoxy(40,15);		textbackground(cyan ); 		write('· '                                    );
			gotoxy(05,16);		textbackground(cyan ); 		write(' ·'                                    );
			gotoxy(40,16);		textbackground(cyan ); 		write('· '                                    );							
			gotoxy(05,17);		textbackground(cyan ); 		write(' ·'                                    );
			gotoxy(40,17);		textbackground(cyan ); 		write('· '                                    );
			gotoxy(05,18);		textbackground(cyan ); 		write(' ·'                                    );
			gotoxy(40,18);		textbackground(cyan ); 		write('· '                                    );
			gotoxy(05,19);		textbackground(cyan ); 		write(' ·'                                    );
			gotoxy(40,19);		textbackground(cyan ); 		write('· '                                    );
			gotoxy(05,20);		textbackground(cyan ); 		write(' ·'                                    );
			gotoxy(40,20);		textbackground(cyan ); 		write('· '                                    );
			gotoxy(05,21);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,21);		textbackground(cyan );		write('· '                                    );
			gotoxy(05,22);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,22);		textbackground(cyan );		write('· '                                    );					
			gotoxy(05,23);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,23);		textbackground(cyan );		write('· '                                    );
			gotoxy(05,24);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,24);		textbackground(cyan );		write('· '                                    );
			gotoxy(05,25);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,25);		textbackground(cyan );		write('· '                                    );
			gotoxy(05,26);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,26);		textbackground(cyan );		write('· '                                    );
			gotoxy(05,27);		textbackground(cyan );		write(' ·'                                    );
			gotoxy(40,27);		textbackground(cyan );		write('· '                                    );					
			gotoxy(05,28);		textbackground(cyan );		write(' ··································· ' );
		end;
	Procedure tela;
		begin 
			FundoBranco;
			Bordas;
			gotoxy(17,06);		textbackground(white);		textcolor(black);		write(' TELA INICIAL');
			gotoxy(17,09);		textbackground(white);		textcolor(cyan);			write('1 - ');		textcolor(black);		write('REGISTRAR');
			gotoxy(17,11);		textbackground(white);		textcolor(cyan);			write('2 - ');		textcolor(black);		write('CONSULTAR');
			gotoxy(17,13);		textbackground(white);		textcolor(cyan);			write('3 - ');		textcolor(black);		write('ALTERAR'  );
			gotoxy(17,15);		textbackground(white);		textcolor(cyan);			write('4 - ');		textcolor(black);		write('ARQUIVO MORTO');
			gotoxy(17,17);		textbackground(white);		textcolor(cyan);			write('5 - ');		textcolor(black);		write('IMPRIMIR' );
			gotoxy(17,19);		textbackground(white);		textcolor(cyan);			write('6 - ');		textcolor(black);		write('SAIR'     );
			gotoxy(17,21);		textbackground(white);		textcolor(cyan);			write('7 - ');		textcolor(black);		write('APAGAR DATA BASE');
			gotoxy(11,23);		textbackground(white);		textcolor(red);			write('DIGITE A OPÇÃO DESEJADA [ ]'          );
			gotoxy(36,23);		textbackground(white);		textcolor(black);			read(op);
			
		end; 
		procedure informações;
		begin
			gotoxy(08,06);		textbackground(white);		textcolor(black);			write('   1 - Novo  2- Sair  [ ]      ');
			gotoxy(08,08);		textbackground(white);		textcolor(black);			write('Matrícula: '        	           );
			gotoxy(08,09);		textbackground(white);		textcolor(black);			write('Nome: _________________________');
			gotoxy(08,10);		textbackground(white);		textcolor(black);			write('CPF: __________________________');
			gotoxy(08,11);		textbackground(white);		textcolor(black);			write('RG: ___________________________');
			gotoxy(08,12);		textbackground(white);		textcolor(black);			write('Título: _______________________');
			gotoxy(08,13);		textbackground(white);		textcolor(black);			write('CNH: __________________________');
			gotoxy(08,14);		textbackground(white);		textcolor(black);			write('CEP: __________________________');
			gotoxy(08,15);		textbackground(white);		textcolor(black);			write('Endereço: _____________________');
			gotoxy(08,16);		textbackground(white);		textcolor(black);			write('Bairro: _______________________');
			gotoxy(08,17);		textbackground(white);		textcolor(black);			write('Cidade: _______________________');
			gotoxy(08,18);		textbackground(white);		textcolor(black);			write('País: _________________________');
			gotoxy(08,19);		textbackground(white);		textcolor(black);			write('Sexo: _________________________');
			gotoxy(08,20);		textbackground(white);		textcolor(black);			write('UF: ___________________________');
			gotoxy(08,21);		textbackground(white);		textcolor(black);			write('Estado Civil: _________________');
			gotoxy(08,22);		textbackground(white);		textcolor(black);			write('E-mail: _______________________');
			gotoxy(08,23);		textbackground(white);		textcolor(black);			write('Telefone: _____________________');
			gotoxy(08,24);		textbackground(white);		textcolor(black);			write('Data de admissão: _____________');
			gotoxy(10,25);		textbackground(white);		textcolor(red);				write('                          ');
			gotoxy(10,26);		textbackground(white);		textcolor(red);				write('                          ');	
		end;
	Procedure registroTitular;
		var cad,mat,opr:integer;
	  begin		
			FundoBranco;
			Bordas;
			informações;
		end;
	procedure cadastrar;
		var o,op,opr,z:integer;
				le:char;
				cpf:string;
		begin
			repeat
				registroTitular;
				gotoxy(31,06);read(o);
				if o=1 then
					begin
						assign(arquivo, 'C:\tete\armazem.dat');
		 					{$I-} reset(arquivo); {$I+};
		  						if ioresult <> 0 then
		   							rewrite(arquivo);
		 
		  				if filesize(arquivo) > 0 then
		   		   seek(arquivo, filesize(arquivo));	   		   
						mat:=filesize(arquivo)+1;
						gotoxy(18,08);write(mat);
						fu.matricula:=mat;
						gotoxy(18,08);write(fu.matricula);
						gotoxy(14,09);read(fu.nome); 
						gotoxy(13,10);read(fu.cpf);
						gotoxy(12,11);read(fu.rg);								
						gotoxy(16,12);read(fu.titulo);
						gotoxy(13,13);read(fu.cnh);
						gotoxy(13,14);read(fu.cep);
						gotoxy(18,15);read(fu.endereco);
						gotoxy(16,16);read(fu.bairro);
						gotoxy(16,17);read(fu.cidade);
						gotoxy(14,18);read(fu.pais);
						gotoxy(14,19);read(fu.sexo);
						gotoxy(12,20);read(fu.uf);
						gotoxy(22,21);read(fu.estadocivil);
						gotoxy(16,22);read(fu.email);
						gotoxy(18,23);read(fu.telefone);
						gotoxy(25,24);read(fu.dataa);
						gotoxy(08,06);		textbackground(white);		textcolor(black);			write('                               ');
						gotoxy(10,25);		textbackground(white);		textcolor(red);				write('1 - Salvar   2 - Cancelar');
						gotoxy(10,26);		textbackground(white);		textcolor(red);				write('Digite a opção desejada [ ]');
						gotoxy(35,26);read(opr);
						close(arquivo);
				if opr=1 then
					begin
						fu.status:='ATIVO';
								  assign(arquivo, 'C:\tete\armazem.dat');
		 								 {$I-} reset(arquivo); {$I+};
		  									if ioresult <> 0 then
									 
										seek(arquivo, filesize(arquivo));
									 
									  		write(arquivo, fu);
									  			close(arquivo);
							end;
				if opr=2 then
					dec(mat);																
					end
				else
					begin	 				
						textcolor(red);
						gotoxy(10,26);write('Saindo...');
						delay(1000);
					end;
			until (o=2);
		end;
	Procedure registroOpcao;
		begin
			FundoBranco;
			Bordas;
			gotoxy(17,06);		textbackground(white);		textcolor(black);		write('   REGISTRO');
			gotoxy(17,09);		textbackground(white);		textcolor(cyan);			write('1 - ');		textcolor(black);		write('TITULAR');
			gotoxy(17,11);		textbackground(white);		textcolor(cyan);			write('2 - ');		textcolor(black);		write('DEPENDENTE');
			gotoxy(17,13);		textbackground(white);		textcolor(cyan);			write('3 - ');		textcolor(black);		write('SAIR'  );
			gotoxy(11,21);		textbackground(white);		textcolor(red);			write('DIGITE A OPÇÃO DESEJADA [ ]'          );			
		end; 
	Procedure registroDependente;
		var x,y,r,op:integer;
				e:boolean;
		begin
			FundoBranco;
			Bordas;
			gotoxy(17,06);		textbackground(white);		textcolor(black);			write('   REGISTRO');
			gotoxy(08,09);    textbackground(white);		textcolor(black);     write(' 1 - Novo  2 - Sair  [ ] ');
			gotoxy(30,09);Read(r);
			case r of
				2:begin;
						clrscr;
						registroOpcao;
					end;	 
				1:begin
						gotoxy(08,10);		textbackground(white);		textcolor(black);			write('Matrícula:_____________________');//Opções da tela
						gotoxy(18,10); read(mat);
						if func[mat].matricula=mat then
							begin
								de.matricula:=mat;
								gotoxy(08,11);		textbackground(white);		textcolor(green);			write('Matricula Válida!');
								gotoxy(10,30);    textbackground(white);		textcolor(red);       write('Matricula em Nome de: ',func[mat].nome);
								gotoxy(10,31);    textbackground(white);		textcolor(red);       write('Matricula No Cpf: ',func[mat].cpf);
								gotoxy(08,12);		textbackground(white);		textcolor(black);			write('Nome: _________________________');
								gotoxy(15,12); Read (de.nome);
								gotoxy(08,13);		textbackground(white);		textcolor(black);			write('CPF: __________________________');
								gotoxy(13,13); Read	(de.cpf);
								gotoxy(10,25);		textbackground(white);		textcolor(red);				write('1 - Salvar   2 - Cancelar');
								gotoxy(10,26);		textbackground(white);		textcolor(red);				write('Digite a opção desejada [ ]');
								gotoxy(35,26); Read (op);
								case op of
									1:begin
											dep[mat]:=de;
											Clrscr;
											gotoxy(08,12);  Textbackground(white); 	textcolor(green);			write('Registro Salvo com Sucesso!!');
											tela;
										end;
									2:begin
											Clrscr;
											gotoxy(08,12);  Textbackground(white); 	textcolor(green);			write('Operação Cancelada!!');
											tela;
										end;
							end;
						end
						else
							begin
								gotoxy(08,11);		textbackground(white);		textcolor(red);			write('Matricula Inválida!');
								delay(750);
								registroDependente;
							end;
					end;
			end;
		end;				
	Procedure alterarOpcao;
		begin
			FundoBranco;
			Bordas;
			gotoxy(17,06);		textbackground(white);		textcolor(black);		write('   ALTERAR');
			gotoxy(17,09);		textbackground(white);		textcolor(cyan);			write('1 - ');		textcolor(black);		write('TITULAR');
			gotoxy(17,11);		textbackground(white);		textcolor(cyan);			write('2 - ');		textcolor(black);		write('DEPENDENTE');
			gotoxy(17,13);		textbackground(white);		textcolor(cyan);			write('3 - ');		textcolor(black);		write('SAIR'  );
			gotoxy(11,21);		textbackground(white);		textcolor(red);			write('DIGITE A OPÇÃO DESEJADA [ ]'          );
			gotoxy(36,21);		textbackground(white);		textcolor(black);			read(op);			
		end;
	Procedure alterarBusca;
		begin
			FundoBranco;
			Bordas;
			gotoxy(17,06);		textbackground(white);		textcolor(black);		write('BUSCA ALTERAR');
			gotoxy(17,09);		textbackground(white);		textcolor(cyan);			write('1 - ');		textcolor(black);		write('MATRÍCULA');
			gotoxy(17,11);		textbackground(white);		textcolor(cyan);			write('2 - ');		textcolor(black);		write('CPF');
			gotoxy(17,13);		textbackground(white);		textcolor(cyan);			write('3 - ');		textcolor(black);		write('SAIR'  );
			gotoxy(11,21);		textbackground(white);		textcolor(red);			write('DIGITE A OPÇÃO DESEJADA [ ]'          );
			gotoxy(36,21);		textbackground(white);		textcolor(black);			read(op);			
		end;
	Procedure BuscaCPF;
		begin
			FundoBranco;
			Bordas;
			gotoxy(17,06);		textbackground(white);		textcolor(black);		write('BUSCA POR CPF');
			gotoxy(08,09);		textbackground(white);		textcolor(cyan);			write('CPF: ');		textcolor(black);		write('__________________________');
			gotoxy(13,21);		textbackground(white);		textcolor(red);			write('DESEJA BUSCAR ?[S/N]: '          );
			gotoxy(34,21);		textbackground(white);		textcolor(black);			read(op);	
		end;
	Procedure BuscaMatricula;
				var op:integer;
						e:boolean;
						busca:integer;
		begin
			FundoBranco;
			Bordas;
			e:=false;
			gotoxy(15,06);		textbackground(white);		textcolor(black);		write('BUSCA POR MATRICULA');
			gotoxy(08,09);		textbackground(white);		textcolor(cyan);			write('MATRÍCULA: ');		textcolor(black);		write('____________________');
			gotoxy(19,09); read(busca);
  			assign(arquivo, 'C:\tete\armazem.dat');
						{$I-} reset(arquivo); {$I+};
						  if ioresult <> 0 then
							  begin
							    writeln;
							    write(' Nada encontrado no arquivo!');
							    delay(1000);
							  end
						  else
							  begin
							seek(arquivo, 0);
						while not eof(arquivo) do
							  begin
							    read(arquivo, fu);
							    if fu.matricula = busca then
							  begin
					e:=true;
					gotoxy(08,10);   textbackground(white);		textcolor(cyan);  write('Nome: ');
					gotoxy(14,10);   textbackground(white);   textcolor(black); write(fu.nome);
					gotoxy(08,11);   textbackground(white);		textcolor(cyan);  write('CPF: ');
					gotoxy(13,11);   textbackground(white);   textcolor(black); write(fu.cpf);
					gotoxy(08,12);   textbackground(white);		textcolor(cyan);  write('RG: ');
					gotoxy(12,12);   textbackground(white);   textcolor(black); write(fu.rg);
					gotoxy(08,13);   textbackground(white);		textcolor(cyan);  write('Titulo: ');
					gotoxy(16,13);   textbackground(white);   textcolor(black); write(fu.titulo);
					gotoxy(08,14);   textbackground(white);		textcolor(cyan);  write('CNH: ');
					gotoxy(12,14);   textbackground(white);   textcolor(black); write(fu.cnh);
					gotoxy(08,15);   textbackground(white);		textcolor(cyan);  write('CEP: ');
					gotoxy(12,15);   textbackground(white);   textcolor(black); write(fu.cep);
					gotoxy(08,16);   textbackground(white);		textcolor(cyan);  write('Endereço: ');
					gotoxy(17,16);   textbackground(white);   textcolor(black); write(fu.endereco);
					gotoxy(08,17);   textbackground(white);		textcolor(cyan);  write('Bairro: ');
					gotoxy(15,17);   textbackground(white);   textcolor(black); write(fu.bairro);
					gotoxy(08,18);   textbackground(white);		textcolor(cyan);  write('Cidade: ');
					gotoxy(15,18);   textbackground(white);   textcolor(black); write(fu.cidade);
					gotoxy(08,19);   textbackground(white);		textcolor(cyan);  write('Pais: ');
					gotoxy(13,19);   textbackground(white);   textcolor(black); write(fu.pais);
					gotoxy(08,20);   textbackground(white);		textcolor(cyan);  write('Sexo: ');
					gotoxy(13,20);   textbackground(white);   textcolor(black); write(fu.sexo);
					gotoxy(08,21);   textbackground(white);		textcolor(cyan);  write('UF: ');
					gotoxy(11,21);   textbackground(white);   textcolor(black); write(fu.uf);
					gotoxy(08,22);   textbackground(white);		textcolor(cyan);  write('Estado Civil: ');
					gotoxy(21,22);   textbackground(white);   textcolor(black); write(fu.estadocivil);
					gotoxy(08,23);   textbackground(white);		textcolor(cyan);  write('Email: ');
					gotoxy(15,23);   textbackground(white);   textcolor(black); write(fu.Email);
					gotoxy(08,24);   textbackground(white);		textcolor(cyan);  write('Telefone: ');
					gotoxy(17,24);   textbackground(white);   textcolor(black); write(fu.telefone);
					gotoxy(08,25);   textbackground(white);		textcolor(cyan);  write('Data de Admissão: ');
					gotoxy(25,25);   textbackground(white);   textcolor(black); write(fu.dataa);
					gotoxy(08,26);   textbackground(white);		textcolor(cyan);  write('Status: ');
					gotoxy(15,26);   textbackground(white);   textcolor(black); write(fu.status);
					gotoxy(08,27);   textbackground(white);   textcolor(black); write('1 - Consultar 2 - Sair [ ]');
					gotoxy(32,27); read(op);
					end;
				end;
			end;
					  case op of
					  			1:BuscaMatricula;
					  			2:begin
					  					close(arquivo);
					  					tela;
					  				end;
					  			end;
					  		end;
					
Begin
	tela;
	repeat
 		case op of
 			0:tela;
  		1:begin
   				clrscr;
   				registroOpcao;
   				gotoxy(36,21);		textbackground(white);		textcolor(black);			read(opc);;
					case opc of
						1:begin
								registroTitular;
								cadastrar;
							end;
						2:registroDependente;
						3:begin
								clrscr;
								tela;
							end;
					end;
				end;
			2:buscaMatricula; 
			5:begin
				imprimir;
				readkey;
			end;
			7:begin
				clrscr;
				gotoxy(15,15); textcolor(red); textbackground(white); write('Digite a senha de destruição: ');
				gotoxy(44,15); read(opr);
					if  opr=0206 then
						begin	
							assign(arquivo, 'C:\tete\armazem.dat');						
							close(arquivo); 
							erase(arquivo);
							gotoxy(15,17); write('Arquivo excluído');
							delay(1000);
							tela;
						end
					else
						tela;
		end;
	end;
		until op=6;
	clrscr;
	gotoxy(15,15);write('Sistema finalizado com sucesso!');
	delay(1000); 
End.

 

Link para o comentário
Compartilhar em outros sites

@TheMajor Olha vou ser sincero o seu código está horrível de se ler, tem muito recuo (famosa indentação), para um novato na programação deixar o tab com 3 a 4 espaços e melhor para não ficar perdido.

Seguir padrões podem ser chatos, mas aqui tá precisando de um KISS, YAGNI, WYSIWYG, DRY.

Agora a parte do erro, quando nos abrimos arquivos nós seguimos 3 passos.

°Abertura.

°Leitura e escrita.

°Fechar o arquivo.

e de costume dos programadores abrir e fechar o mesmo arquivo só uma vez, então nas partes que você usa

assign(arquivo,nome);

mais de uma vez isso acaba corrompendo o ponteiro para o arquivo e fica difícil saber se o arquivo já foi aberto ou se está aberto, então aqui refatorar todo o código pode ser uma solução.

passar o arquivo por referencia e uma boa pratica, porque você só vai passá-lo enquanto ele estiver aberto.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
 

Olá, realizando um programa para cadastro de clientes em File notei que algumas vezes o programa se recusa a apagar a database se for solicitado.

Alguém consegue dar uma força?

Lá embaixo na opção 7:

 

Qual erro está ocorrendo?

 

A depender, coloque para imprimir o valor do IOResult().

 

Ex.:

7:begin
  ClrScr;
  Textcolor(red); Textbackground(white);
  GotoXY(15,15); write('Digite a senha de destruição: ');
  GotoXY(44,15); {read(opr);} readln(opr);
  if opr=0206 then
    begin	
    {Assign(arquivo, 'C:\tete\armazem.dat');} //só precisa assinalar uma vez lá no início do programa
    {$I-} Close(arquivo); {$I+}
    IOCode := IOResult();
    if IOCode <> 0 then
      begin
      writeln('Deu pau no Close(). Code Error: ', IOCode);
      ReadKey();
      exit;
      end;
    {$I-} Erase(arquivo); {$I+}
    IOCode := IOResult();
    if IOCode <> 0 then
      begin
      writeln('Deu pau no Erase(). Code Error: ', IOCode);
      ReadKey();
      exit;
      end;
    GotoXY(15,17); write('Arquivo excluído');
    Delay(1000);
    {tela;}
    end
  {else}
  tela;
  end;

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...