Ir para conteúdo
Fórum Script Brasil
  • 0

Aniversário


Paulo Nobre

Pergunta

PrezadosColaboradores

Será que alguém poderia ajudar dando uma idéia de como fazer uma sistema

para verificar se a uma data de aniversário de uma pessoa ,previamente catalogada, coincide com a data do sistema e a partir disto exibir uma mensagem.

O que eu gostaria de saber é como seria o código para ler todas as datas em algum lugar (TALVEZ UM TXT) e comparar com a data do sistema.

OBS: não gostaria de fazer com banco de dados.

Alguém?

Paulo Nobre

Link para o comentário
Compartilhar em outros sites

19 respostass a esta questão

Posts Recomendados

  • 0

Prezado Capablanca

As razões seriam as seguintes:

1) Tenho pouca experiência com banco de dados;(já fiz algumas coisas simples), mas os simples programas que faço não usam banco de dados, talvez porque não seja profissional da área de programação. Sou professor de matemática e quase tudo que já fiz está relacionado para esta área. Em uma das escolas que trabalho percebi uma folha afixada com as datas de aniversário dos funcionários e tive está idéia.

2) Uma distribuição sem banco dados é sempre mais simples(não precisa de BDE e outros) ,e o programa na distribuição poderia caber até num disquete.

Obrigado por sua atenção!

Paulo Nobre

Link para o comentário
Compartilhar em outros sites

  • 0

Prezado Capablanca

As razões seriam as seguintes:

1) Tenho pouca experiência com banco de dados;(já fiz algumas coisas simples), mas os simples programas que faço não usam banco de dados, talvez porque não seja profissional da área de programação. Sou professor de matemática e quase tudo que já fiz está relacionado para esta área. Em uma das escolas que trabalho percebi uma folha afixada com as datas de aniversário dos funcionários e tive está idéia.

2) Uma distribuição sem banco dados é sempre mais simples(não precisa de BDE e outros) ,e o programa na distribuição poderia caber até num disquete.

Obrigado por sua atenção!

Paulo Nobre

Olá Paulo,

1) Que tal começar a trabalhar com banco de dados?;

2) Um programa sem banco de dados não será necessariamente mais simples que um programa com banco de dados. Você menciona o BDE, mas esta arquitetura vem sendo substituída por outras mais eficazes. No seu exemplo, por que não usar um simples banco de dados Microsoft Access? Não vejo um aplicativo como o que você quer fazer, sem que você faça uso de um banco de dados (a menos que você faça alguma coisa em XML). Um aplicativo simples como o que você quer, mais um banco de dados Microsoft Access cabem perfeitamente em um diskette (mas é claro que não devemos ficar restritos a ele - diskette). Utilizando MS Access, você não precisará disponibilizar mais nada com o seu aplicativo (a não ser em raríssimas exceções, nas quais bastaria que o usuário baixasse o Microsoft Jet e o problema estaria resolvido).

Se você quiser, podemos utilizar este tópico para desenvolvermos este seu aplicativo. O que você acha?

Link para o comentário
Compartilhar em outros sites

  • 0

Prezado Capablanca,

Obrigado por sua atenção.

Acho legal a sua idéia, mas como disse a você minha experiência

com banco de dados é quase nenhuma, mas se você tiver paciência com

um aluno com pouca experiência, mas boa vontade para aprender ,topo

o desafio. Via internet o trabalho será bem lento, pois minha conexão é discada e em casa só acesso nos fins de semana. No trabalho acesso pela manhã antes das sete e não tenho o Delphi instalado. Mas devagar talvez chegue lá.

Com o que você disse anteriormente, podemos concluir que sem banco de dados é impossível fazer o que eu queria?

Paulo Nobre

Link para o comentário
Compartilhar em outros sites

  • 0

Respondendo a sua última pergunta: Não... É possível sim implementar o que você deseja sem um banco de dados.

Uma das formas seria:

1) Usar WriteComponent e ReadComponent, os quais, basicamente, atuam da seguinte forma: você tem, por exemplo, um objeto TREEVIEW preenchido com diversos dados. Utilizando WriteComponent você poderá gravar todo o conteúdo do seu TREEVIEW em um arquivo texto. Posteriormente é possível ler os dados deste arquivo texto e "povoar" o nosso TREEVIEW;

2) Utilizar o componente ClientDataSet... ÃÃÃÃÃÃnnnnnn???? Exatamente. Pode-se usar um componente ClientDataSet sem fazer uso de um banco de dados. O procedimento seria usar um arquvio de texto (binário) ou usar um arquivo XML, arquivos estes nos quais iremos armazenar os dados (na verdade seria algo semelhante a um banco de dados). Neste caso, a única coisa que você precisaria disponibilizar seria o EXECUTÁVEL + um arquivo chamado MIDAS.dll (aproximadamente 300k) + seu ARQUIVO TEXTO (na verdade, dá até para dispensar o MIDAS.dll, acrescentando uma linha de código - no entanto, seu aplicativo ficará um pouco maior).

No seu caso, a segunda opção me parece a mais interessante, pois você poderia inclusive visualizar os dados numa tabela e tudo mais...

No entanto, na realidade, esta segunda opção seria muito semelhante se usássemos um banco de dados Microsoft Access (e é claro que utilizando o Access temos uma vasta gama de opções/recursos).

Você escolhe.

Abs.

Link para o comentário
Compartilhar em outros sites

  • 0

Há uma outra excelente opção, que muitos usuários utilizam.

Trata-se de um componente chamado SQLMemTable e SQLMemQuery (da empresa Aidaim (http://www.aidaim.com).

Este componente é free e permite que você armazene os dados numa tabela temporária (em sua própria memória) ou num pequeno arquivo texto.

Recomendaria esta opção também.

Link para o comentário
Compartilhar em outros sites

  • 0

Prezado Capablanca,

Consegui fazer o programa(simples sem muitos recursos, mas atende por enquanto o que quero) da seguinte maneira:

1) O programa roda no tray.(usei o componente da RXLib)

2) Existe um submenu que chama uma janela que faz catalogar o nome e data de nascimento do aniversariante).Após digitar nos dois edits o nome e a data de nascimento clica-se no botão catalogar(principal do programa) , que faz o seguinte:

a) Registra num arquivo txt o nome e a data de nascimento.

cool.gif Numa outra janela(mostrar aniversariantes), que também pode ser chamada pelo submenu, dentro de um lisbox também é registrado o nome e a data de nascimento do aniversariante.

3)Coloco um timer, para depois de 2 minutos(do programa aberto) no evento ontimer comparar a data do sistema com todas as datas que aparecem no listbox. Neste caso uso uma função que verifica se a substring(por exemplo 19/09) está dentro da string do listbox. Se for verdadeiro aparece uma caixa de dialogo do tipo messagebox informando.

4)É claro que existe a opção de inicializar com o windows, para ficar melhor.

5) Funcionou, mas a única coisa que vou tentar melhorar(ainda não pensei) é como apagar algum aniversariante. Por enquanto o usuário tem um sub menu - apagar aniversariante - que abre o txt que contém a lista de todos os aniversariantes catalogados. Neste caso é orientado a apagar toda a linha com cuidado e na próxima vez que usar o programa ele não estará mais na listbox, já que ela preenchida no evento oncreat do form. Sei que esta parte não está muito profissional nem elegante, mas foi a solução inicail para completar o programa.

Obrigado pelas suas dicas

Paulo Nobre

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Paulo Nobre,

Acabei fazendo um exemplo pra você, o qual servirá de base para alterações conforme você desejar.

Baixe o exemplo (projeto + executável + arquivo binário) em: http://www.capablanca.com.br/download/resp...asil/Aniver.zip

Neste exemplo eu utilizei o excelente componente (free) SQLMemTable, o qual pode ser baixado em http://www.aidaim.com/products/delphi.php#sqlmemtable. Você precisará deste componente para abrir o projeto do exemplo que eu criei.

Como eu já havia mencionado, utilizando este componente, nós não precisamos de um banco de dados (MS Access, por exemplo). Tudo é gravado num arquivo binário.

Logo, ao distribuir seu aplicativo, apenas é necessário disponilizar o arquivo executável mais o arquivo binário (o qual, no meu caso, nomeei para Aniver.dat).

Você verá como o exemplo é bem interessante, pois, numa primeira visão, parece que você está utilizando um banco de dados, quando na realidade não está. Do modo como eu elaborei, assim que o programa for aberto, os dados são carregados a partir do arquivo Aniver.dat. Você poderá adicionar, remover ou alterar os registros à vontade, pois os dados só serão "realmente" gravados no arquivo, quando o programa for fechado (eu elaborei desta forma, mas você poderá criar outras maneiras de fazer isso).

Eu não coloquei a opção para o programa ficar no TRAY, mas isso é super simples e nem vale a pena eu implementar no exemplo (se você tiver dúvidas quanto a isso me dá um toque).

Por fim, muito embora o programa seja bastante simples, você precisará investir alguns minutos para entender o funcionamento do sistema (bem como dos componentes em si).

Qualquer dúvida, dá um toque...

Abs... Capablanca

ScreenShot #1

user posted image

ScreenShot #2

user posted image

Link para o comentário
Compartilhar em outros sites

  • 0

Prezado Capablanca,

Muito obrigado pelo seu exemplo,ficou com o visual muito bonito e funcional.

Vou baixá-lo e estudá-lo no final de semana.

Você poderia me dar um roteiro (qaundo tiver tempo)de como instalar este componente.

Com certeza com sua ajuda irei aprender mais desta maravilhosa ferramenta que é o DELPHI.

Abs Paulo Nobre

Link para o comentário
Compartilhar em outros sites

  • 0

PrezadoCapablanca,

Parece que tem instalador sim,só que precisa de uma senha que eles dizem mandar para o email cadastrdo. Mandei dois emails e nãomandaram nada.

Você poderia memandar esta senha?

Obrigado

PauloNobre

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Paulo,

Lá vai...

1) Faça o download do SQLMemTable em http://www.aidaim.com/products/unlock.php?product_id=12. Neste endereço você deve fornecer seu nome e e-mail. No entanto, o componente é free. Será enviado um e-mail para você contendo o código para destravar o componente;

2) Após o download, descompacte o arquivo em um diretório e clique no arquivo Install.exe;

3) Na tela que será aberta, clique no botão Next;

4) Informe o seu nome, e-mail e código que foram enviados por e-mail;

5) Clique no botão Next;

6) Clique no botão Accept;

7) Escolha um diretório e clique no botão Next;

8) Deixe todas as opções marcadas e clique em Next;

9) Se o Delphi estiver aberto, feche-o e clique no botão OK;

10) Os arquivos serão copiados e o componente instalado no Delphi;

11) Abra o Delphi. No menu, clique em Tools --> Environment Options. Clique na guia Library e adicione o subdiretório Lib\Delphi 7 (no meu caso, foi ;E:\Arquivos de programas\AidAim\SQLMemTable\Lib\Delphi 7). Coloque um ponto e vírgula ";" antes do E:\

12) Pronto... Abra o exemplo que eu te mandei e tente rodá-lo.

Abs. e boa sorte.

Capablanca

Link para o comentário
Compartilhar em outros sites

  • 0

PrezadoCapablanca,

Como havia mencionado acima baixei o componente, mas o problema é que eles não enviam o código. Dizem que vão enviar e não enviam. Já mandei dois email diferentes e nada. Por isso perguntei a você se poderia me enviar o código, já que o componente é free.

Paulo Nobre

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Paulo... Entendi.

Algo deve estar errado com o seu e-mail pois assim que você preenche o formulário e faz o download, você já recebe um e-mail contendo as informações para destravar.

Em todo caso, temporariamente vou disponibilizar os meus próprios dados para destravar (creio que você terá que fazer o download do "meu" componente - http://www.capablanca.com.br/download/comp...mtable240d7.zip). Este é para Delphi 7.

Dados para destravar o componente freeware:

- Your name: Capablanca

- E-mail: capablanca@capablanca.com.br

- Unlock key: EAC9-0F3F

Abs.

Link para o comentário
Compartilhar em outros sites

  • 0

Prezado Capablanca,

Obrigado

Consegui instalar o componente e agora só falta estudar o programa.

Na realidade como você usa alguns comandos SQL, verei se tomo vergonha e estudo um pouco de banco de dados.

A propósito, quando mandei o terceiro email eles me mandaram a senha para destravar.

Paulo Nobre

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...