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.

gilmar.vicente

Membros Juniores
  • Total de itens

    17
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Observe as alterações: está excluindo no topo do grid. porém só acrescenta em cima da primeira linha. Estante_Virtual.zip
  2. 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
  3. 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.
  4. 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.
  5. 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.
  6. 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
  7. desculpe. Não consegui evoluir na questão.
  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: gvicentetads@gmail.com'); 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
  15. Fiz algumas mudanças e na hora de listar aparece as dez posições zeradas. Na procedure Adicionar, a variável 'j' está como não inicializada. Que coisa mais acho que nem adicionando está. program project1; USES crt; type vetor = array[1..10] of integer; procedure menu (var opcao:integer); begin writeln ('MENU'); writeln ('1) ADICIONAR'); writeln ('2) LISTAR'); writeln ('3) MAIOR'); writeln ('4) MENOR'); writeln ('5) MEDIA'); writeln ('6) TROCA VALOR'); writeln ('7) SAIR'); write ('Digite sua opcao: '); readln (opcao); end; //adicionar procedure adicionar( var vet:vetor; var cont: integer); var j : integer; begin begin if cont >= 10 then begin writeln('VETOR CHEIO!!'); end else begin write('Digite um valor: '); readln(vet[j]); cont := cont+1; end; clrscr; end; end; procedure listar(VAR vet : vetor; var cont : integer); var j : integer; begin for j := 1 to cont do writeln(vet[j]); end; //menor function menor (i:vetor; cont:integer):real; var j : integer; menores : real; begin menores := 999999; for j := 1 to cont do begin if menores > i[j] then begin menores := i[j]; end; end; menor:=menores; clrscr; end; function maior(j:vetor;cont:integer) : real; var i : integer; maiores : real; begin maiores := 0; for i := 1 to cont do begin if j[i] > maiores then maiores := j[i] end; maior:=maiores; clrscr; end; //programa principal var opcao: integer; cont,j: integer; x: vetor; begin repeat begin menu(opcao); case opcao of 1: begin adicionar(x,j); end; 2: listar(x,j); 3: writeln('O maior valor foi: ', maior(x, cont):2:3); 4: writeln('O menor valor foi: ', menor(x, cont):2:3); 7: writeln('SAIR'); else writeln('Digite uma opcao valida: '); end; end; until opcao = 7; readkey; END. Grato.

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

×