Ir ao conteúdo
  • Cadastre-se
HeloDelEsposti

Arquivo em Pascal

Recommended Posts

Bom , to fazendo um programa em pascal , referente a um cadastro de jogos, e tem como requisito usar arquivo pra armazenar.. enfim

na hora de compilar , da o seguinte erro : "tentativa de escrita em arquivo não aberto com sucesso "

ja tentei de tudo , mas, o erro continua =/

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bom , to fazendo um programa em pascal , referente a um cadastro de jogos, e tem como requisito usar arquivo pra armazenar.. enfim

na hora de compilar , da o seguinte erro : "tentativa de escrita em arquivo não aberto com sucesso "

ja tentei de tudo , mas, o erro continua =/

Podem ter vários motivos... por exemplo se o "arquivo ainda não existir".

Poste aqui o seu código e qual o compilador está utilizando...

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu já consegui resolver esse problema ! muita obrigada :)

Mas, continuando com outra duvida , tem como inicializar uma string? e se tiver como, como faço ?to usando o PascalZim novo ..

Compartilhar este post


Link para o post
Compartilhar em outros sites
eu já consegui resolver esse problema ! muita obrigada :)

Resolveu como? Por favor, poste aqui a solução... ela pode ser útil para ouros membros...

Mas, continuando com outra duvida , tem como inicializar uma string? e se tiver como, como faço ?to usando o PascalZim novo ..

Depende do que você que dizer com "inicializar". Se for no sentido de "dar um valor inicial", basta atribuir diretamente um valor utilizando o ":=". Ex.:

Program ExemploString;
var
frase:string;
Begin
frase:='Fórum do Clube do Hardware'; //iniciando a variável
writeln(frase);
End.

Se quiser deixar um valor "nulo", basta atribuir '' (duas aspas sem nada dentro).

Obs.: Por padrão, as variáveis já são inicializadas automaticamente ao executar o programa... as string ficam como '', os numerais com "0", o tipo boolean fica com false... etc... Se tive dúvidas sobre o valor inicial, basta imprimir a variável e ver o que tem nela...

PS: Mesmo as variáveis sendo inicializadas automaticamente, é uma boa prática inicializar os valores manualmente, pois garante que o valor inicial de fato vai ser o que você precisa... outro detalhe importante é que em alguns compiladores (não sei se é em todos), as variáveis locais (declaradas em procedures e functions) NÃO SÃO INICIALIZADAS, ou seja, se não inicializar elas podem ficar um um valor qualquer (ficam com o valor do "lixo" que está na memória naquela posição)... Logo, em procedimentos DEVEM inicializar sempre... nas globais (que ficam no VAR) é facultativo.. mas é recomendado também inicializar...

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigada !

e, você sabe como eu faço pra alterar dados um arquivo ?

ou seja, gravar um por cima de outro ?

eu fiz uma procedure pra alterar, só que ta ficando salvo o antigo e o novo a qual fiz a alteração , queria saber como faz pra ficar só o novo salvo !

Compartilhar este post


Link para o post
Compartilhar em outros sites
obrigada !

e, você sabe como eu faço pra alterar dados um arquivo ?

ou seja, gravar um por cima de outro ?

eu fiz uma procedure pra alterar, só que ta ficando salvo o antigo e o novo a qual fiz a alteração , queria saber como faz pra ficar só o novo salvo !

Em arquivo binários (file of), basta dar um Seek() para posição desejada e escrever...

Se você acabou de ler o dado o arquivo, basta voltar uma posição, por exemplo.

Seek(meu_arquivo,FilePos(meu_arquivo)-1);

Em arquivo de texto (text), simplesmente não é possível.. Só escreve no final do arquivo.

PS: Faltou informa como resolveu o problema anterior...

No aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu inicializei a string recebendo ' ' , deu certo !

quanto ao primeiro erro , eu nao sei muito bem como fiz , futuquei e o erro simplesmente sumiu ! assim que der eu posto o codigo !

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O CÓDIGO É ESSE, TA ENORME E DANDO ALGUNS ERROS AINDA =/

Código:


uses crt;
//Programa GameZone Programado Por:Caíque/Heloiza
//Data da criação: 14/08/13
//Última Atualização:01/09/13
//Versão 3.0
const
limite = 100;
type
cadastragame = record
nome:string;
genero:string;
lancamento:integer;
plataformas:string;
multiplayer:string;
jogabilidade:integer;
visual:integer;
diversao:integer;
faixaetaria:string[50];
requisitos:string[255];
desenvolvedor:string;
descricao:string[255];
rentabilidade:string[255];
campeonatos:string;
end;
vetor = array[1..limite] of cadastragame;
var
choose,i:integer;
arq_p:file of cadastragame;
vet:vetor;
exclui:string;
flag:char;
procedure Excluir;//Procedimento que exclui o game cadastrado
var
cont,i,tot:integer;
vetc:vetor;
begin
i:= 1;
tot := 0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (1,3);
writeln ('Informe o nome do jogo que deseja excluir: ');
readln (exclui);
clrscr;
writeln ('Procurando pelo arquivo...');
delay (2000);
assign (arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
begin
if (vetc[i].nome = exclui) then
cont:=cont+i;
end;
writeln ('Arquivo encontrado!');
writeln ('Confirma Exclusão? (S/N)');
readln (flag);
flag:= Upcase(flag);
if (flag = 'S') then
begin
vetc[i].nome := ' ';
vetc[i].genero:= ' ';
vetc[i].lancamento:= 0;
vetc[i].plataformas := ' ';
vetc[i].multiplayer:= ' ';
vetc[i].jogabilidade:=0;
vetc[i].visual:= 0;
vetc[i].diversao:= 0;
vetc[i].faixaetaria:= ' ';
vetc[i].requisitos:= ' ';
vetc[i].desenvolvedor:= ' ';
vetc[i].descricao:= ' ';
vetc[i].rentabilidade:= ' ';
vetc[i].campeonatos:= ' ';
end;
assign(arq_p,'ArquivoGeral.txt');
reset(arq_p);
write(arq_p,vetc[cont]);
close(arq_p);
end;
procedure Exibir; //Procedimento que exibe todos os games cadastrados no sistema!
var
i,tot:integer;
vetc:vetor;
begin
i:= 1;
tot := 0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (27,3);
writeln ('Exibindo Games Cadastrados');
assign (arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
begin
gotoxy (37,4);
writeln ('Game ',i);
writeln ('================================================================================');
writeln ('Nome: ',vetc[i].nome);
writeln;
writeln ('Genero: ',vetc[i].genero);
writeln;
writeln ('Lançamento: ',vetc[i].lancamento);
writeln;
writeln ('Plataformas: ',vetc[i].plataformas);
writeln;
writeln ('Multiplayer: ',vetc[i].multiplayer);
writeln;
writeln ('Visual: ',vetc[i].visual);
writeln;
writeln ('Diversão: ',vetc[i].diversao);
writeln;
writeln ('Faixa Etária: ',vetc[i].faixaetaria);
writeln;
writeln ('Requisitos: ',vetc[i].requisitos);
writeln;
writeln ('Desenvolvedor: ',vetc[i].desenvolvedor);
writeln;
writeln ('Descrição: ',vetc[i].descricao);
writeln;
writeln ('Rentabilidade: ',vetc[i].rentabilidade);
writeln;
writeln ('Campeonatos: ',vetc[i].campeonatos);
writeln;
writeln ('================================================================================');
readkey;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (27,3);
writeln ('Exibindo Games Cadastrados');
end;
writeln ('Pressione uma tecla para voltar ao menu!');
readkey;
end;
procedure Altera; // Procedimento que permite alterações nos campos referentes aos games!
var
campo,i,tot,choosei,indice:integer;
vetc:vetor;
nome,chooses:string;
begin
i:= 1;
tot:=0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Digite o nome do Game que você quer Alterar/Atualizar');
readln (nome);
clrscr;
writeln ('Procurando pelo arquivo...');
delay (2000);
assign(arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
if (nome = vetc[i].nome) then
begin
indice:= i;
writeln ('Game encontrado, escolha o campo que deseja alterar/Atualizar');
writeln;
writeln(' 1 - Nome ');
writeln;
writeln(' 2 - Gênero ');
writeln;
writeln(' 3 - Ano de Lançamento ');
writeln;
writeln(' 4 - Plataformas ');
writeln;
writeln(' 5 - Multiplayer (Sim/Não) ');
writeln;
writeln(' 6 - Nota no quesito Jogabilidade ');
writeln;
writeln(' 7 - Nota no quesito Visual/Gráficos ');
writeln;
writeln(' 8 - Nota no quesito Diversão ');
writeln;
writeln(' 9 - Faixa Etária ');
writeln;
writeln(' 10 - Requisitos para rodar o Game ');
writeln;
writeln(' 11 - Desenvolvedor ');
writeln;
writeln(' 12 - Descrição (Máx 255 Caracteres) ');
writeln;
writeln(' 13 - Rentabilidade ');
writeln;
writeln(' 14 - Campeonatos (Sim/Não) ');
writeln;
readln (campo);
writeln ('Digite o conteúdo que deseja substituir á ',campo,': ');
end;
case campo of
1:begin
readln (chooses);
vetc[indice].nome := chooses;
end;
2:begin
readln(choosei);
vetc[indice].genero:= chooses;
end;
3:begin
readln(choosei);
vetc[indice].lancamento:= choosei;
end;
4:begin
readln(chooses);
vetc[indice].plataformas:=chooses;
end;
5:begin
readln(chooses);
vetc[indice].multiplayer:= chooses;
end;
6:begin
readln(choosei);
vetc[indice].jogabilidade:=choosei;
end;
7:begin
readln(choosei);
vetc[indice].visual:=choosei;
end;
8:begin
readln(chooses);
vetc[indice].diversao:=choosei;
end;
9:begin
readln(chooses);
vetc[indice].faixaetaria:=chooses;
end;
10:begin
readln(chooses);
vetc[indice].requisitos:=chooses;
end;
11:begin
readln(chooses);
vetc[indice].desenvolvedor:=chooses;
end;
12:begin
readln(chooses);
vetc[indice].descricao:=chooses;
end;
13:begin
readln(chooses);
vetc[indice].rentabilidade:=chooses;
end;
14:begin
readln(chooses);
vetc[indice].campeonatos:=chooses;
end;
end;
assign(arq_p,'ArquivoGeral.txt');
append(arq_p);
reset (arq_p);
write(arq_p,vetc[i]);
close (arq_p);
writeln ('Alteração/Atualização concluída com sucesso!');
delay (2000);
clrscr;
writeln ('Pressione uma tecla para voltar ao menu!');
delay (2000);
readkey;
clrscr;
writeln ('Voltando ao menu principal....');
delay (2000);
end;
procedure Consulta;
var
nome:string;
flag:char;
vetc:vetor;
tot,i:integer;
Begin
i:= 1;
tot:=0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Digite o nome do Game que você quer consultar');
readln (nome);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Procurando pelo arquivo...');
delay (2000);
assign(arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
if (nome = vetc[i].nome) then
begin
writeln ('================================================================================');
writeln ('Nome: ',vetc[i].nome);
writeln;
writeln ('Genero: ',vetc[i].genero);
writeln;
writeln ('Lançamento: ',vetc[i].lancamento);
writeln;
writeln ('Plataformas: ',vetc[i].plataformas);
writeln;
writeln ('Multiplayer: ',vetc[i].multiplayer);
writeln;
writeln ('Visual: ',vetc[i].visual);
writeln;
writeln ('Diversão: ',vetc[i].diversao);
writeln;
writeln ('Faixa Etária: ',vetc[i].faixaetaria);
writeln;
writeln ('Requisitos: ',vetc[i].requisitos);
writeln;
writeln ('Desenvolvedor: ',vetc[i].desenvolvedor);
writeln;
writeln ('Descrição: ',vetc[i].descricao);
writeln;
writeln ('Rentabilidade: ',vetc[i].rentabilidade);
writeln;
writeln ('Campeonatos: ',vetc[i].campeonatos);
writeln;
writeln ('================================================================================');
writeln ('Pressione uma tecla para voltar ao menu!');
readkey;
end;
if (nome <> vetc[i].nome) then
begin
writeln ('Game Não Encontrado !');
delay (2000);
clrscr;
writeln ('(Tecle 1)Buscar Novamente (Tecle 2) para voltar ao Menu!');
readln (flag);
if (flag = '1') then
Consulta;
if (flag = '2') then
writeln ('Voltando ao Menu...');
delay (2000);
clrscr;
end;
end;
procedure CADASTROCENTRAL(var vet:vetor;var i:integer;limite:integer);
var
flag,flag2:char;
begin
if i > limite then
begin
writeln ('Limite de cadastros atingidos!(100 Cadastros)');
delay (2000);
clrscr;
writeln ('Voltando ao Menu...');
end
else
assign (arq_p,'ArquivoGeral.txt');
{$I-}
reset (arq_p);
{$I+}
if (ioresult <> 0) then
begin
clrscr;
textcolor(lightgreen);
writeln ('Arquivo não encontrado');
delay (2000);
clrscr;
writeln ('Criando Arquivo...');
rewrite(arq_p);
delay (2000);
end;
close(arq_p);
repeat
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o Nome do Game: ');
readln (vet[i].nome);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o Gênero do Game: ');
readln (vet[i].genero);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o ano de Lançamento do Game: ');
readln (vet[i].lancamento);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe as Plataformas que rodam Game: ');
readln (vet[i].plataformas);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe se o jogo possui Multiplayer [Sim/Não]: ');
readln (vet[i].multiplayer);
vet[i].multiplayer:= Upcase(vet[i].multiplayer);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe uma nota para Jogabilidade [0 á 10]: ');
readln (vet[i].jogabilidade);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe uma nota para Visual/Gráficos [0 á 10]: ');
readln (vet[i].visual);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe uma nota para Diversão [0 á 10]: ');
readln (vet[i].diversao);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe a Faixa Etária do Game: ');
readln (vet[i].faixaetaria);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe os Requisitos Mínimos para rodar o Game [Máx 255 Caracteres]: ');
readln (vet[i].requisitos);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o Desenvolvedor do Game: ');
readln (vet[i].desenvolvedor);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Faça uma breve Descrição sobre o Game:[Máx 255 Caracteres]: ');
readln (vet[i].descricao);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe a Rentabilidade do Game: ');
readln (vet[i].rentabilidade);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe se o Game possui Campeonatos/Torneios [Sim/Não]: ');
readln (vet[i].campeonatos);
vet[i].campeonatos := Upcase (vet[i].campeonatos);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Confirma Gravação? [S/N]');
readln (flag);
flag:= Upcase(flag);
if (flag = 'S') then
begin
append (arq_p);
reset (arq_p);
write(arq_p,vet[i]);
i:= i+1;
clrscr;
end
else
begin
clrscr;
CADASTROCENTRAL(vet,i,limite);
end;
writeln ('Deseja continuar cadastrando mais Games? [S/N]');
readln (flag2);
flag2:= Upcase(flag2);
until flag2 = 'N';
close (arq_p);

end;
procedure CADASTROIN; {Faz o cadastro inicial para acesso ao sistema}
type
cadastroini = record
user:string;
pass:string;
end;
var
arq_cadi:file of cadastroini;
registro:cadastroini;
flag:char;
begin
clrscr;
textcolor(lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln (' ');
writeln ('Informe o nome: ');
readln(registro.user);
writeln ('Informe a senha: ');
readln (registro.pass);
assign(arq_cadi,registro.user);
writeln ('Confirma o Cadastro [S/N]');
readln (flag);
flag:= Upcase (flag);
if (flag = 'S') then
begin
rewrite (arq_cadi);
write(arq_cadi,registro);
close (arq_cadi);
reset(arq_cadi);
writeln ('Usuário: ',registro.user);
writeln ('Senha: ',registro.pass);
close (arq_cadi);
writeln (' ');
writeln ('Cadastro Realizado Com Sucesso!');
end
else
begin
CADASTROIN;
end;
end;
function USERWORD(nome,password:string):char; //Verifica o nome e a senha do usuário!
type
registro = record
user:string;
pass:string;
end;
var
arq:file of registro;
reg:registro;
confirm:char;
begin
assign(arq,nome);
{$I-}
reset(arq);
{$i+}
If (ioresult = 0)then
Begin
with reg do
begin
read (arq,reg);
if (nome = user) and (password = pass) then
begin
confirm:= 'S';
USERWORD := confirm;
end;
if (nome <> user) and (password <> pass) then
begin
confirm:= 'N';
USERWORD:= confirm;
end;
end;
end
else
begin
confirm:='I';
USERWORD:=confirm;
end;
end;
procedure LOADING;
var
i:integer;
Begin
for i:= 1 to 1 do
begin
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177);
write ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
write (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
write ('================================================================================');
delay (800);
clrscr;
end;
end;
procedure USUARIO; //Página de login para acesso ao sistema!
var
user,password:string;
result:char;
begin
result:=' ';
textcolor(lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (30,3);
textcolor (blue);
delay (500);
writeln ('Acesso Ao Sistema');
textcolor (lightgreen);
delay (1000);
gotoxy(28,5);
writeln ('Informe o Usuário:');
gotoxy(47,5);
readln (user);
gotoxy(28,7);
writeln ('Informe a Senha:');
gotoxy(45,7);
readln (password);
result:= USERWORD(user,password);
clrscr;
writeln(result);
if (result = 'N') then
begin
gotoxy(30,8);
textcolor(lightred);
writeln ('Usuário/Senha INCORRETA');
delay (2000);
user:=' ' ;
clrscr;
USUARIO;
end;
if (result = 'S') then
begin
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
LOADING;
end;
if (result = 'I') then
begin
clrscr;
gotoxy(23,8);
textcolor(lightgreen);
writeln ('Registro Não Encontrado/Inexistente!');
delay (3000);
clrscr;
writeln ('Redirecionando para tela de cadastro...');
delay (3000);
CADASTROIN;
delay (3000);
clrscr;
writeln ('Redirecionando para tela de login...');
clrscr;
USUARIO;
end;

end;
procedure INICIO; //procedimento que exibe a tela principal do GameZone
var
escolha:integer;
Begin
clrscr;
textcolor(lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
textcolor(lightgreen);
writeln('');
writeln(' Bem Vindo Ao ');
textcolor(white);
writeln('');
writeln(' ######### ');
writeln(' ## ');
writeln(' ## ####### ############# ######### ');
writeln(' ## #### ## ## ## ## ## ## ');
writeln(' ## ## ####### ## ## ## ######### ');
writeln(' ## ## ## ## ## ## ## ## ');
writeln(' ########## ####### ## ## ## ######### ');
writeln(' ');
writeln(' ');
writeln(' ######### ### ## ## ');
writeln(' ## # # # # # ');
writeln(' ## ######### ######## ######## # # # # ');
writeln(' ## ## ## ## ## ## ## ');
writeln(' ## ## ## ## ## ######## ');
writeln(' ## ## ## ## ## ## ');
writeln(' ######### ######### ## ## ######## ');
writeln(' ');
writeln(' ');
textcolor(lightgreen);
writeln(' Usuário Já Cadastrado (Tecle 1) Cadastrar Usuário (Tecle 2) ' );
gotoxy(38,24);
readln (escolha);
if (escolha = 1) then
begin
clrscr;
USUARIO;
end
else
begin
CADASTROIN;
writeln (' ');
textcolor(lightcyan);
gotoxy(18,20);
writeln ('Pressione uma tecla para voltar ao início!');
readkey;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
INICIO;
end;
End;
Begin // Programa Principal
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
INICIO;
i:= 1;
repeat
Begin
clrscr;
gotoxy(15,1);
TextColor(Lightgreen);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln('');
TextColor(Lightgreen);
gotoxy (27,4) ;
writeln('Escolha uma opção abaixo:');
TextColor(Lightgray);
writeln;
writeln;
writeln(' 1 - Consultar Games Cadastrados ');
writeln;
writeln(' 2 - Cadastrar Novo Game ');
writeln;
writeln(' 3 - Alterar/Atualizar Game Cadastrado ');
writeln;
writeln(' 4 - Excluir Game Cadastrado ');
writeln;
writeln(' 5 - Exibir Games Cadastrados ');
writeln;
writeln(' 6 - Voltar A Tela Inicial ');
writeln;
writeln(' 7 - Trocar Usuário ');
writeln;
writeln(' 8 - Sair ');
writeln;
readln (choose);
case choose of
1:begin
clrscr;
Consulta;
end;
2:begin
clrscr;
CADASTROCENTRAL(vet,i,limite);
end;
3:begin
clrscr;
Altera;
end;
4:begin
clrscr;
Excluir;
end;
5:begin
clrscr;
Exibir;
end;
6:begin
clrscr;
INICIO;
end;
7:begin
clrscr;
USUARIO;
end;
8:begin
clrscr;
textcolor (lightgreen);
writeln('Saindo...');
delay(1500);
clrscr;
end;
end;
end;
until choose = (8);
End.
Program GameZoneV2 ;

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
O CÓDIGO É ESSE, TA ENORME E DANDO ALGUNS ERROS AINDA =/

Código:


uses crt;
//Programa GameZone Programado Por:Caíque/Heloiza
//Data da criação: 14/08/13
//Última Atualização:01/09/13
//Versão 3.0
const
limite = 100;
type
cadastragame = record
nome:string;
genero:string;
lancamento:integer;
plataformas:string;
multiplayer:string;
jogabilidade:integer;
visual:integer;
diversao:integer;
faixaetaria:string[50];
requisitos:string[255];
desenvolvedor:string;
descricao:string[255];
rentabilidade:string[255];
campeonatos:string;
end;
vetor = array[1..limite] of cadastragame;
var
choose,i:integer;
arq_p:file of cadastragame;
vet:vetor;
exclui:string;
flag:char;
procedure Excluir;//Procedimento que exclui o game cadastrado
var
cont,i,tot:integer;
vetc:vetor;
begin
i:= 1;
tot := 0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (1,3);
writeln ('Informe o nome do jogo que deseja excluir: ');
readln (exclui);
clrscr;
writeln ('Procurando pelo arquivo...');
delay (2000);
assign (arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
begin
if (vetc[i].nome = exclui) then
cont:=cont+i;
end;
writeln ('Arquivo encontrado!');
writeln ('Confirma Exclusão? (S/N)');
readln (flag);
flag:= Upcase(flag);
if (flag = 'S') then
begin
vetc[i].nome := ' ';
vetc[i].genero:= ' ';
vetc[i].lancamento:= 0;
vetc[i].plataformas := ' ';
vetc[i].multiplayer:= ' ';
vetc[i].jogabilidade:=0;
vetc[i].visual:= 0;
vetc[i].diversao:= 0;
vetc[i].faixaetaria:= ' ';
vetc[i].requisitos:= ' ';
vetc[i].desenvolvedor:= ' ';
vetc[i].descricao:= ' ';
vetc[i].rentabilidade:= ' ';
vetc[i].campeonatos:= ' ';
end;
assign(arq_p,'ArquivoGeral.txt');
reset(arq_p);
write(arq_p,vetc[cont]);
close(arq_p);
end;
procedure Exibir; //Procedimento que exibe todos os games cadastrados no sistema!
var
i,tot:integer;
vetc:vetor;
begin
i:= 1;
tot := 0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (27,3);
writeln ('Exibindo Games Cadastrados');
assign (arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
begin
gotoxy (37,4);
writeln ('Game ',i);
writeln ('================================================================================');
writeln ('Nome: ',vetc[i].nome);
writeln;
writeln ('Genero: ',vetc[i].genero);
writeln;
writeln ('Lançamento: ',vetc[i].lancamento);
writeln;
writeln ('Plataformas: ',vetc[i].plataformas);
writeln;
writeln ('Multiplayer: ',vetc[i].multiplayer);
writeln;
writeln ('Visual: ',vetc[i].visual);
writeln;
writeln ('Diversão: ',vetc[i].diversao);
writeln;
writeln ('Faixa Etária: ',vetc[i].faixaetaria);
writeln;
writeln ('Requisitos: ',vetc[i].requisitos);
writeln;
writeln ('Desenvolvedor: ',vetc[i].desenvolvedor);
writeln;
writeln ('Descrição: ',vetc[i].descricao);
writeln;
writeln ('Rentabilidade: ',vetc[i].rentabilidade);
writeln;
writeln ('Campeonatos: ',vetc[i].campeonatos);
writeln;
writeln ('================================================================================');
readkey;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (27,3);
writeln ('Exibindo Games Cadastrados');
end;
writeln ('Pressione uma tecla para voltar ao menu!');
readkey;
end;
procedure Altera; // Procedimento que permite alterações nos campos referentes aos games!
var
campo,i,tot,choosei,indice:integer;
vetc:vetor;
nome,chooses:string;
begin
i:= 1;
tot:=0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Digite o nome do Game que você quer Alterar/Atualizar');
readln (nome);
clrscr;
writeln ('Procurando pelo arquivo...');
delay (2000);
assign(arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
if (nome = vetc[i].nome) then
begin
indice:= i;
writeln ('Game encontrado, escolha o campo que deseja alterar/Atualizar');
writeln;
writeln(' 1 - Nome ');
writeln;
writeln(' 2 - Gênero ');
writeln;
writeln(' 3 - Ano de Lançamento ');
writeln;
writeln(' 4 - Plataformas ');
writeln;
writeln(' 5 - Multiplayer (Sim/Não) ');
writeln;
writeln(' 6 - Nota no quesito Jogabilidade ');
writeln;
writeln(' 7 - Nota no quesito Visual/Gráficos ');
writeln;
writeln(' 8 - Nota no quesito Diversão ');
writeln;
writeln(' 9 - Faixa Etária ');
writeln;
writeln(' 10 - Requisitos para rodar o Game ');
writeln;
writeln(' 11 - Desenvolvedor ');
writeln;
writeln(' 12 - Descrição (Máx 255 Caracteres) ');
writeln;
writeln(' 13 - Rentabilidade ');
writeln;
writeln(' 14 - Campeonatos (Sim/Não) ');
writeln;
readln (campo);
writeln ('Digite o conteúdo que deseja substituir á ',campo,': ');
end;
case campo of
1:begin
readln (chooses);
vetc[indice].nome := chooses;
end;
2:begin
readln(choosei);
vetc[indice].genero:= chooses;
end;
3:begin
readln(choosei);
vetc[indice].lancamento:= choosei;
end;
4:begin
readln(chooses);
vetc[indice].plataformas:=chooses;
end;
5:begin
readln(chooses);
vetc[indice].multiplayer:= chooses;
end;
6:begin
readln(choosei);
vetc[indice].jogabilidade:=choosei;
end;
7:begin
readln(choosei);
vetc[indice].visual:=choosei;
end;
8:begin
readln(chooses);
vetc[indice].diversao:=choosei;
end;
9:begin
readln(chooses);
vetc[indice].faixaetaria:=chooses;
end;
10:begin
readln(chooses);
vetc[indice].requisitos:=chooses;
end;
11:begin
readln(chooses);
vetc[indice].desenvolvedor:=chooses;
end;
12:begin
readln(chooses);
vetc[indice].descricao:=chooses;
end;
13:begin
readln(chooses);
vetc[indice].rentabilidade:=chooses;
end;
14:begin
readln(chooses);
vetc[indice].campeonatos:=chooses;
end;
end;
assign(arq_p,'ArquivoGeral.txt');
append(arq_p);
reset (arq_p);
write(arq_p,vetc[i]);
close (arq_p);
writeln ('Alteração/Atualização concluída com sucesso!');
delay (2000);
clrscr;
writeln ('Pressione uma tecla para voltar ao menu!');
delay (2000);
readkey;
clrscr;
writeln ('Voltando ao menu principal....');
delay (2000);
end;
procedure Consulta;
var
nome:string;
flag:char;
vetc:vetor;
tot,i:integer;
Begin
i:= 1;
tot:=0;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Digite o nome do Game que você quer consultar');
readln (nome);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Procurando pelo arquivo...');
delay (2000);
assign(arq_p,'ArquivoGeral.txt');
reset(arq_p);
while not eof(arq_p) do
begin
tot:= tot+1;
read(arq_p,vet[tot]);
end;
for i:= 1 to tot do
begin
vetc[i].nome:= vet[i].nome;
vetc[i].genero:=vet[i].genero;
vetc[i].lancamento:=vet[i].lancamento;
vetc[i].plataformas:=vet[i].plataformas;
vetc[i].multiplayer:=vet[i].multiplayer;
vetc[i].jogabilidade:=vet[i].jogabilidade;
vetc[i].visual:=vet[i].visual;
vetc[i].diversao:=vet[i].diversao;
vetc[i].faixaetaria:=vet[i].faixaetaria;
vetc[i].requisitos:=vet[i].requisitos;
vetc[i].desenvolvedor:=vet[i].desenvolvedor;
vetc[i].descricao:=vet[i].descricao;
vetc[i].rentabilidade:=vet[i].rentabilidade;
vetc[i].campeonatos:=vet[i].campeonatos;
end;
close (arq_p);
for i:= 1 to tot do
if (nome = vetc[i].nome) then
begin
writeln ('================================================================================');
writeln ('Nome: ',vetc[i].nome);
writeln;
writeln ('Genero: ',vetc[i].genero);
writeln;
writeln ('Lançamento: ',vetc[i].lancamento);
writeln;
writeln ('Plataformas: ',vetc[i].plataformas);
writeln;
writeln ('Multiplayer: ',vetc[i].multiplayer);
writeln;
writeln ('Visual: ',vetc[i].visual);
writeln;
writeln ('Diversão: ',vetc[i].diversao);
writeln;
writeln ('Faixa Etária: ',vetc[i].faixaetaria);
writeln;
writeln ('Requisitos: ',vetc[i].requisitos);
writeln;
writeln ('Desenvolvedor: ',vetc[i].desenvolvedor);
writeln;
writeln ('Descrição: ',vetc[i].descricao);
writeln;
writeln ('Rentabilidade: ',vetc[i].rentabilidade);
writeln;
writeln ('Campeonatos: ',vetc[i].campeonatos);
writeln;
writeln ('================================================================================');
writeln ('Pressione uma tecla para voltar ao menu!');
readkey;
end;
if (nome <> vetc[i].nome) then
begin
writeln ('Game Não Encontrado !');
delay (2000);
clrscr;
writeln ('(Tecle 1)Buscar Novamente (Tecle 2) para voltar ao Menu!');
readln (flag);
if (flag = '1') then
Consulta;
if (flag = '2') then
writeln ('Voltando ao Menu...');
delay (2000);
clrscr;
end;
end;
procedure CADASTROCENTRAL(var vet:vetor;var i:integer;limite:integer);
var
flag,flag2:char;
begin
if i > limite then
begin
writeln ('Limite de cadastros atingidos!(100 Cadastros)');
delay (2000);
clrscr;
writeln ('Voltando ao Menu...');
end
else
assign (arq_p,'ArquivoGeral.txt');
{$I-}
reset (arq_p);
{$I+}
if (ioresult <> 0) then
begin
clrscr;
textcolor(lightgreen);
writeln ('Arquivo não encontrado');
delay (2000);
clrscr;
writeln ('Criando Arquivo...');
rewrite(arq_p);
delay (2000);
end;
close(arq_p);
repeat
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o Nome do Game: ');
readln (vet[i].nome);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o Gênero do Game: ');
readln (vet[i].genero);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o ano de Lançamento do Game: ');
readln (vet[i].lancamento);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe as Plataformas que rodam Game: ');
readln (vet[i].plataformas);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe se o jogo possui Multiplayer [Sim/Não]: ');
readln (vet[i].multiplayer);
vet[i].multiplayer:= Upcase(vet[i].multiplayer);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe uma nota para Jogabilidade [0 á 10]: ');
readln (vet[i].jogabilidade);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe uma nota para Visual/Gráficos [0 á 10]: ');
readln (vet[i].visual);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe uma nota para Diversão [0 á 10]: ');
readln (vet[i].diversao);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe a Faixa Etária do Game: ');
readln (vet[i].faixaetaria);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe os Requisitos Mínimos para rodar o Game [Máx 255 Caracteres]: ');
readln (vet[i].requisitos);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe o Desenvolvedor do Game: ');
readln (vet[i].desenvolvedor);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Faça uma breve Descrição sobre o Game:[Máx 255 Caracteres]: ');
readln (vet[i].descricao);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe a Rentabilidade do Game: ');
readln (vet[i].rentabilidade);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Informe se o Game possui Campeonatos/Torneios [Sim/Não]: ');
readln (vet[i].campeonatos);
vet[i].campeonatos := Upcase (vet[i].campeonatos);
clrscr;
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln ('Confirma Gravação? [S/N]');
readln (flag);
flag:= Upcase(flag);
if (flag = 'S') then
begin
append (arq_p);
reset (arq_p);
write(arq_p,vet[i]);
i:= i+1;
clrscr;
end
else
begin
clrscr;
CADASTROCENTRAL(vet,i,limite);
end;
writeln ('Deseja continuar cadastrando mais Games? [S/N]');
readln (flag2);
flag2:= Upcase(flag2);
until flag2 = 'N';
close (arq_p);

end;
procedure CADASTROIN; {Faz o cadastro inicial para acesso ao sistema}
type
cadastroini = record
user:string;
pass:string;
end;
var
arq_cadi:file of cadastroini;
registro:cadastroini;
flag:char;
begin
clrscr;
textcolor(lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln (' ');
writeln ('Informe o nome: ');
readln(registro.user);
writeln ('Informe a senha: ');
readln (registro.pass);
assign(arq_cadi,registro.user);
writeln ('Confirma o Cadastro [S/N]');
readln (flag);
flag:= Upcase (flag);
if (flag = 'S') then
begin
rewrite (arq_cadi);
write(arq_cadi,registro);
close (arq_cadi);
reset(arq_cadi);
writeln ('Usuário: ',registro.user);
writeln ('Senha: ',registro.pass);
close (arq_cadi);
writeln (' ');
writeln ('Cadastro Realizado Com Sucesso!');
end
else
begin
CADASTROIN;
end;
end;
function USERWORD(nome,password:string):char; //Verifica o nome e a senha do usuário!
type
registro = record
user:string;
pass:string;
end;
var
arq:file of registro;
reg:registro;
confirm:char;
begin
assign(arq,nome);
{$I-}
reset(arq);
{$i+}
If (ioresult = 0)then
Begin
with reg do
begin
read (arq,reg);
if (nome = user) and (password = pass) then
begin
confirm:= 'S';
USERWORD := confirm;
end;
if (nome <> user) and (password <> pass) then
begin
confirm:= 'N';
USERWORD:= confirm;
end;
end;
end
else
begin
confirm:='I';
USERWORD:=confirm;
end;
end;
procedure LOADING;
var
i:integer;
Begin
for i:= 1 to 1 do
begin
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177);
write ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' CARREGANDO SOFTWARE ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
writeln (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
writeln ('================================================================================');
delay (800);
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
writeln (' ');
textcolor (lightgreen);
writeln (' ACESSANDO ARQUIVOS ');
write ('================================================================================');
write (#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177,#177);
write ('================================================================================');
delay (800);
clrscr;
end;
end;
procedure USUARIO; //Página de login para acesso ao sistema!
var
user,password:string;
result:char;
begin
result:=' ';
textcolor(lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
gotoxy (30,3);
textcolor (blue);
delay (500);
writeln ('Acesso Ao Sistema');
textcolor (lightgreen);
delay (1000);
gotoxy(28,5);
writeln ('Informe o Usuário:');
gotoxy(47,5);
readln (user);
gotoxy(28,7);
writeln ('Informe a Senha:');
gotoxy(45,7);
readln (password);
result:= USERWORD(user,password);
clrscr;
writeln(result);
if (result = 'N') then
begin
gotoxy(30,8);
textcolor(lightred);
writeln ('Usuário/Senha INCORRETA');
delay (2000);
user:=' ' ;
clrscr;
USUARIO;
end;
if (result = 'S') then
begin
clrscr;
gotoxy(30,8);
textcolor(lightgreen);
writeln ('LOGIN REALIZADO COM SUCESSO!');
LOADING;
end;
if (result = 'I') then
begin
clrscr;
gotoxy(23,8);
textcolor(lightgreen);
writeln ('Registro Não Encontrado/Inexistente!');
delay (3000);
clrscr;
writeln ('Redirecionando para tela de cadastro...');
delay (3000);
CADASTROIN;
delay (3000);
clrscr;
writeln ('Redirecionando para tela de login...');
clrscr;
USUARIO;
end;

end;
procedure INICIO; //procedimento que exibe a tela principal do GameZone
var
escolha:integer;
Begin
clrscr;
textcolor(lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
textcolor(lightgreen);
writeln('');
writeln(' Bem Vindo Ao ');
textcolor(white);
writeln('');
writeln(' ######### ');
writeln(' ## ');
writeln(' ## ####### ############# ######### ');
writeln(' ## #### ## ## ## ## ## ## ');
writeln(' ## ## ####### ## ## ## ######### ');
writeln(' ## ## ## ## ## ## ## ## ');
writeln(' ########## ####### ## ## ## ######### ');
writeln(' ');
writeln(' ');
writeln(' ######### ### ## ## ');
writeln(' ## # # # # # ');
writeln(' ## ######### ######## ######## # # # # ');
writeln(' ## ## ## ## ## ## ## ');
writeln(' ## ## ## ## ## ######## ');
writeln(' ## ## ## ## ## ## ');
writeln(' ######### ######### ## ## ######## ');
writeln(' ');
writeln(' ');
textcolor(lightgreen);
writeln(' Usuário Já Cadastrado (Tecle 1) Cadastrar Usuário (Tecle 2) ' );
gotoxy(38,24);
readln (escolha);
if (escolha = 1) then
begin
clrscr;
USUARIO;
end
else
begin
CADASTROIN;
writeln (' ');
textcolor(lightcyan);
gotoxy(18,20);
writeln ('Pressione uma tecla para voltar ao início!');
readkey;
clrscr;
textcolor (lightgreen);
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
INICIO;
end;
End;
Begin // Programa Principal
gotoxy(15,1);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
INICIO;
i:= 1;
repeat
Begin
clrscr;
gotoxy(15,1);
TextColor(Lightgreen);
writeln ('GameZone, A Sua Central De Informações de Jogos!');
writeln('');
TextColor(Lightgreen);
gotoxy (27,4) ;
writeln('Escolha uma opção abaixo:');
TextColor(Lightgray);
writeln;
writeln;
writeln(' 1 - Consultar Games Cadastrados ');
writeln;
writeln(' 2 - Cadastrar Novo Game ');
writeln;
writeln(' 3 - Alterar/Atualizar Game Cadastrado ');
writeln;
writeln(' 4 - Excluir Game Cadastrado ');
writeln;
writeln(' 5 - Exibir Games Cadastrados ');
writeln;
writeln(' 6 - Voltar A Tela Inicial ');
writeln;
writeln(' 7 - Trocar Usuário ');
writeln;
writeln(' 8 - Sair ');
writeln;
readln (choose);
case choose of
1:begin
clrscr;
Consulta;
end;
2:begin
clrscr;
CADASTROCENTRAL(vet,i,limite);
end;
3:begin
clrscr;
Altera;
end;
4:begin
clrscr;
Excluir;
end;
5:begin
clrscr;
Exibir;
end;
6:begin
clrscr;
INICIO;
end;
7:begin
clrscr;
USUARIO;
end;
8:begin
clrscr;
textcolor (lightgreen);
writeln('Saindo...');
delay(1500);
clrscr;
end;
end;
end;
until choose = (8);
End.
Program GameZoneV2 ;

Olá, vamos lá:

1) Arquivo binário x Arquivo de texto

Append

Open a file in append mode

Declaration

Source position: systemh.inc line 948

procedure Append(

var t: Text

);

Description

Append opens an existing file in append mode. Any data written to F will be appended to the file. Only text files can be opened in append mode. After a call to Append, the file F becomes write-only. File sharing is not taken into account when calling Append.

Fonte: http://www.freepascal.org/docs-html/rtl/system/append.html

O Append() não se aplica a arquivo binários.

Existem diferenças entre os arquivo binários e o arquivos de texto... (se não souber, qualquer coisa dá uma pesquisada rápida na internet).

Os arquivos binários são aqueles declarados com file of TIPO; e os de texto são declarados como text;, certo? Então, como o arquivo é do tipo file of cadastragame;, logo ele é binário...

...e portanto o comando Append() não se aplica a ele!!! O programa nem devia compilar!!! (não sei explicar porque está aceitando no PascalZim).

Logo, essas linhas devem ser removidas (já que já tem o reset() depois):

325  append(arq_p);

543  append(arq_p);

PS1: O reset() funciona tanto para arquivos de texto tanto para binários.

PS2: Basicamente o Append() e o Reset() sevem para a mesma coisa: abrir um arquivo de texto, logo, não faria sentido usar um após o outro, ou seja, ou usa um ou usa o outro... O primeiro abre arquivos de texto para escrita (no fim) e o segundo para leitura (no início).

2) Laço de repetição X Recursividade

Já sabe mais ou menos o que é recursividade (um procedimento chamar a si mesmo)? Então, vou tentar não entrar em detalhes, mas observei que no seu código, você está fazendo isso (ex.: linha 599)... E na minha opinião não deveria!, ou seja, se você precisa que determinado trecho se repita, você "DEVE" usar um laço de repetição: repeat (ou while ou for).. a recursividade "NÃO DEVE SERVIR" para esse propósito de "executar novamente"... Eu consideraria como um uso indevido do recurso...

Resumidamente: ajuste o código para usar um laço de repetição, e não chamar novamente a si mesmo.

PS: Cada vez que você chama um procedimento dentro dele mesmo (si chamando), o Pascal vai acumulando o procedimento em uma pilha de processos, ou seja, após terminar o atual, ele vai voltar para o anterior, e depois volta para o anterior, até voltar para o programa principal... (o laço de repetição vai evitar esse uso "indevido" da pilha).

PS: Isso é a minha opinião, não necessariamente está certa ou é unânime.

3) Processo de abertura/criação de arquivos

Da mesma forma que você fez no USERWORD usando as diretivas {$I-} e {$I+} e afins, você deve fazer nos outros trechos... Assim como a tentativa de abertura, criação, fechamento, a leitura e escrita também estão passivas de erro de I/O (input/output - entrada/saída), logo deveriam também ser tratadas! Mas, por enquanto, para o programa não ficar sobrecarregado, você deve pelo menos tratar a abertura (reset()) e criação (rewrite()) de todos os arquivos (fazendo vista grossa com os read(), write(), close(), depois se deseja complementa).

***

Por ai vai

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu consegui fazer algumas mudanças , nao ficou exatamente como deveria ficar , mas esta funcionando razoavelmente como deveria . Já enviamos para o professor, seja o que Deus quiser agora!

Mas, sua resposta serviu pra esclarecer algumas coisas , já vou evitar alguns erros da proxima vez!

Obrigado pela ajuda :)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
eu consegui fazer algumas mudanças , nao ficou exatamente como deveria ficar , mas esta funcionando razoavelmente como deveria . Já enviamos para o professor, seja o que Deus quiser agora!

Mas, sua resposta serviu pra esclarecer algumas coisas , já vou evitar alguns erros da proxima vez!

Obrigado pela ajuda :)

Ok.. valeu..

Se quiser aproveitar o algoritmo e dar uma revisada/ajusta/aprimorada, fique a vontade... o objetivo principal mesmo seria uma troca de informações entre nós e os leitores, até quem sabe, reapresentar ao professor ^_^... e como sugerido por você, podem também já servi para um programa futuro..

Então, se tiver interesse é só mandar brasa... senão quiser por qualquer motivo, por favor avise-nos, que fecharemos o tópico... e ficaremos no aguardo do próximo encontro.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×