Ir ao conteúdo
  • Cadastre-se

gilmar.vicente

Membro Júnior
  • Posts

    18
  • Cadastrado em

  • Última visita

Reputação

17
  1. procedure TfrmCADEXE.BtnIncluirClick(Sender: TObject); begin pilha := Nil; begin if (pilha = Nil) then begin new(pilha); pilha^.Autor := EdtNome_Autor.Text; pilha^.Nome_da_Obra := EdtNome_Obra.Text; pilha^.QTD_Pg := EdtQtd_Pag.Text; pilha^.CEP_Autor := EdtCEP_Autor.Text; pilha^.proximo := nil; end else begin aux := pilha; while (aux^.proximo <> Nil) do new(novo); novo^.Autor := EdtNome_Autor.Text; novo^.Nome_da_Obra := EdtNome_Obra.Text; novo^.QTD_Pg := EdtQtd_Pag.Text; novo^.CEP_Autor := EdtCEP_Autor.Text; novo^.proximo := Nil; aux^.proximo := novo; end; end; ListBox1.Items.Add(pilha^.Autor + ' - ' + pilha^.Nome_da_Obra + ' - ' + pilha^.QTD_Pg + ' - ' + pilha^.CEP_Autor); EdtNome_Autor.Clear; EdtNome_Obra.Clear; EdtQtd_Pag.Clear; EdtCEP_Autor.Clear; end; procedure TfrmCADEXE.BtnRetirarClick(Sender: TObject); begin if (pilha = nil) then begin ShowMessage('Sem Livros para Retirar'); end; if (pilha <> nil) then begin aux := pilha; While(aux^.proximo <> nil) do begin penultimo := aux; aux := aux^.proximo; end; penultimo^.proximo := nil;// Aqui se encontra o erro Dispose(aux); end; end; Preciso que alguém mais experiente me dê uma luz. Não está excluindo no topo como deveria. Help - me
  2. Observe as alterações: está excluindo no topo do grid. porém só acrescenta em cima da primeira linha. Estante_Virtual.zip
  3. Olá galera. Utilizo o Lazarus IDEv1.8.2 - Tive a ideia de fazer uma Biblioteca Virtual tentando estruturar os dados em um tipo Pilha. Fiz em modo texto para poder visualizar a lógica. Mas quando tento implementar com button, edit, form e outros componentes não entendo onde entro com os ponteiros. Implementei uma primeira tela de menu e uma segunda de cadastro. A meta é fazer uma aplicação com alguma forma de estrutura(pilha,fila) com alocação dinâmica de memória contemplando o máximo de componentes(button, edit) do Lazarus. Grato por qualquer ajuda. empilha_livros - Copia.rar M_grafico.rar
  4. Tenho um trabalho que implemente estrutura de dados (lista encadeada, pilha ) e ambiente gráfico ( buttons, text, mais de um form ). preciso de uma ideia para implementação.
  5. OK. Você tem algum exemplo em modo gráfico de alguma aplicação que trate de estrutura de dados. OU alguma ideia que eu passa tentar implementar. sou iniciante em pascal e tenho que entregar um trabalho sobre o assunto.
  6. Olá Estou dando meus primeiros passos com banco de dados mas estou tendo dificuldade de ligar O Lazarus ao banco, escolhi o SQLiteStudio só para me familiarizar mas não está rolando. Achei um exemplo para implementar é um sistema de cadastro de nomes e cidades , só que estou deixando passar algo. Grato por qualquer ajuda. A manipulação do banco neste inicio até que não tenho dificuldade, mas a ligação com o lazarus este sim é um problema.
  7. Olá Bom dia. estudando sobre estrutura de dados, me deparei com um exemplo, encontrado na internet, em modo gráfico que demonstra a utilização de pilhas. O sistema é o seguinte: Digita-se o nome e a idade e (acredito eu) ao clicar em listar deveria aparecer em um listbox os dados digitados. porém, aparece (1-Nome:,Idade:) Estou encafifado com isso. Há pouco conteúdo em modo gráfico sobre assunto. Grato por qualquer ajuda unit1.zip project1.zip
  8. help-me. Estou trancado, não sei se estou na caminho certo. É preciso criar um arquivo temporário? Só mais uma pergunta. Se o arquivo for em formato binário não é possível excluir parte da informação? somente todo o bloco de informação. correto? begin reset(arq); while not EOF(arq) do readln(arq,auto.modelo); i := 0; repeat //localiza o primeiro pipe existente da linha posicao := pos('|',auto.modelo ); if posicao = 0 then // se não existe pipe na string posicao := length(auto.modelo) + 1; //lê o resto da linha // armazena a parte da linha que corresponde ao campo campo[i] := copy(auto.modelo, 1,pred(posicao)); //elimina o campo lido da linha delete(auto.modelo, 1, posicao ); until (posicao >= length(auto.modelo)); end;
  9. Olá Simon. Consegui escrever no arquivo de texto de forma mais organizada. por exemplo: Palio|Preto|5 portas|2018|2018 Gostaria de excluir somente a cor do exemplo acima. Palio|5 portas|2018|2018 ex: begin O que desejas excluir? 1-modelo 2-cor 3-ano readln(cor); for i := 1 to length(cor) do end. É por aqui?
  10. Após algum trabalho consegui algum resultado, só não consegui excluir ou alterar somente a cor ou o modelo, apenas um. Consegui excluir/alterar toda a linha do arquivo no qual fica salvo as informações. Alguém pode dar uma luz. Código: program project1; uses crt, SysUtils; type cadastro = record modelo: string; cor: string; end; var arq: textfile; arq2: textfile; opcao, x, y: integer; auto: cadastro; linha: string; modeloatual, newmodel: string; begin Assignfile(arq, 'garagem.txt'); if (fileexists('garagem.txt') = False) then begin rewrite(arq); //abre arquivo end; repeat //////////////////////////////////////// textbackground(2); clrscr; textbackground(2); textcolor(7); writeln(' ====================================================='); gotoxy(3,2);textcolor(red+blink); writeln('+ GARAGEM SUAVE NA NAVE +'); textcolor(7); writeln(' ====================================================='); writeln; writeln; writeln(' SELECIONE UMA OPCAO '); writeln(' [1] Inserir Registro ' ); writeln(' [2] Ver registro ' ); writeln(' [3] Excluir Registro ' ); writeln(' [4] Alterar Registro ' ); writeln(' [5] Finalizar Sistema ' ); gotoxy (35,8); textcolor(red); textbackground(white); gotoxy (35,9); writeln('=============='); gotoxy (35,10); writeln('| OPCAO = |' ); gotoxy (35,11); writeln('=============='); gotoxy (45,10); gotoxy(1,29); writeln('Contato: [email protected]'); readln(opcao); textcolor(7); textbackground(2); /////////////////////////////////////// if (opcao = 1) then //inserir begin gotoxy(3,15); Write('Digite o nome do veiculo: '); readln(auto.modelo); gotoxy(3,15); Write('Digite a cor do veiculo: '); readln(auto.cor); Append(arq); //final do arquivo // writeln(arq, auto.modelo, '-' , auto.cor); writeln(arq, auto.modelo, auto.cor); Closefile(arq); clrscr; end; /////////////////////////////////// //listar if (opcao = 2) then begin gotoxy(3,15); reset(arq); //ABRE O ARQ while not EOF(arq) do begin readln(arq, auto.modelo); writeln(auto.modelo); end; writeln(''); writeln('Tecle <ENTER> para continuar '); readkey; closefile(arq); end; ////////////////////////////////// //excluir if (opcao = 3) then begin gotoxy(3,15); writeln('qual modelo desejas excluir:'); Assignfile(arq2, 'garagemaux.txt'); //cria arq tmp p/ excluir rewrite(arq2); readln(linha); reset(arq); //abre o arq no inicio while not EOF(arq) do //enquanto nao for o final do arquivo begin readln(arq, auto.modelo); begin if (auto.modelo <> linha) then begin append(arq2); writeln(arq2, auto.modelo); closefile(arq2); end; end; end; closefile(arq); deletefile('garagem.txt'); renamefile('garagemaux.txt', 'garagem.txt'); end; /////////////////////////////////////// //alterar if (opcao = 4) then begin gotoxy(3,15); Assignfile(arq2,'garagemaux.txt'); writeln('qual modelo desejas alterar: '); readln(modeloatual); gotoxy(3,15); writeln('qual o novo modelo: '); readln(newmodel); reset(arq); //abre o arq no inicio rewrite(arq2); //abrir arquivo preparando para escrever while not EOF(arq) do //enquanto nao for o final do arquivo begin readln(arq,auto.modelo); if (auto.modelo = modeloatual) then begin writeln(arq2,newmodel); end else begin writeln(arq2,auto.modelo); closefile(arq2); end; end; closefile(arq); deletefile('garagem.txt'); renamefile('garagemaux.txt','garagem.txt'); end; begin writeln(''); writeln('Aperte qualquer tecla para voltar ao menu'); clrscr; end; until (opcao = 5); end.
  11. Olá amigos. Estou com dificuldade em manipulação de arquivos de texto, mais precisamente no excluir e no alterar. Criei o projeto e o programa até cria o arq.aux (que é usado para excluir), mas não copia nada para ele e nem apaga o original. Alguém pode revisar para mim? Grato. Código: program project1; uses crt,sysutils; type cadastro = record modelo: string; cor : string; end; var arq : textfile; arq2: textfile; opcao : integer; auto : cadastro; linha : string; begin Assignfile(arq, 'garagem.txt'); Assignfile(arq2, 'garagemaux.txt'); //cria arq tmp p/ excluir if (fileexists ('garagem.txt') = false)then begin rewrite(arq); //abre arquivo closefile(arq); end; repeat writeln('1 - Inserir Registro '); writeln('2 - Ver Registros'); writeln('3 - Excluir Registro'); writeln('4 - Alterar registro'); writeln('5 - Sair'); readln(opcao); case opcao of //inserir 1 : begin write('Digite o nome do veiculo: '); readln(auto.modelo); write('Digite a cor do veiculo: '); readln(auto.cor); Append(arq); //final do arquivo writeln(arq, auto.modelo:10,auto.cor:10); Closefile(arq); clrscr; end; //listar 2 : begin reset(arq); //ABRE O ARQ while not EOF(arq) do begin readln(arq,auto.modelo,auto.cor); writeln(auto.modelo,auto.cor); end; readkey; closefile(arq); end; //excluir 3 : begin writeln('qual modelo desejas excluir: '); readln(linha); reset (arq); //abre o arq no inicio rewrite(arq2); while not (EOF(arq)=false) do //enquanto nao for o final do arquivo begin readln(arq,auto.modelo); if (linha <> auto.modelo) then begin writeln(arq2,auto.modelo); end; closefile(arq); closefile(arq2); erase(arq); rename(arq2,'garagem.txt'); end; end; //alterar // 4 : end; begin writeln(''); writeln('Aperte qualquer tecla para voltar ao menu'); clrscr; end; until (opcao = 5); Closefile(arq); end. teste.txt
  12. Utilisei o seu exemplo em um outro projeto adaptando o código e me deparei com duas situações: A primeira é que gostaria que o cursor já iniciasse na primeira opção. A segunda é: como cadastrar a tecla <enter>.Eu até pensei o seguinte: begin if (opcao = 4) then opcao := '1'; end; //se a opção do usuário for a quarta linha então chamará a procedure correspondente à [1 - inserir.] Só que não funcionou. Ou pelo menos não apliquei a lógica de uma forma correta. Grato por qualquer ajuda. procedure menu; Var hora,min,seg,sec : word; l,a,opcao : integer; Begin textbackground(blue); clrscr; GetTime( hora,min,seg,sec); write(hora , ':' , min ); gotoxy(2,2); writeln(' //menu// '); writeln; writeln(' inserir '); writeln; writeln(' consultar '); writeln(); writeln(' modificar '); writeln; writeln(' ordenar por... '); writeln; writeln(' sair '); writeln; writeln('----------------------------'); Writeln(' Utilise as setas do teclado '); writeln('e tecle <ENTER> na opcao desejada'); repeat GotoXY(1,l); write(' -->'); a:=ord(readkey()); if a=80 then begin gotoxy(1,l); write(' '); l:=l+2; //faz o cursor pular de 2 em 2 linhas p/ baixo if (l>4)and(l > 12) then l:=4; end else if a=72 then begin gotoxy(1,l); write(' '); l:=l-2; //faz o cursor pular de 2 em 2 linhas p/ cima if l < 4 then l:=12; end; until a=13; opcao:=l-2; end;
  13. Grato, sem palavras para agradecer. Você tem mais alguma sugestão para acrescentar ao projeto que tire a ideia de DOS principalmente ou uma dica de estudo.
  14. Grato pelas observações, foi difícil mas está funcionando:inserindo,listando,maior,menor e maior que 100. Realmente tive extrema dificuldade neste conteúdo, agora gostaria de mudar a aparência trabalhar com goto(xy), gostaria de ao invés de digitar um numero para escolher a opção do menu, fosse com as setas p/cima e p/ baixo e teclando ENTER. Ainda bem que temos opções de aprendizado fora da escola. Obrigado por seu tempo e paciência. teste.txt

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...