Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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 ;

Editado por Simon Viegas
Ao postar um código utilize a tag CODE. Inseri tag SPOILER devido ao tamanho. Abraços
  • 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






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

×