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:  
Amiguinho

Programa de consulta

Recommended Posts

Ola, eu estou querendo criar um programinha bem básico, que faz consultas em um arquivo TXT e retorna alguns campos na tela.

 

Eu sei o básico de lógica de programação e um pouco de C (programei um pouco o Arduino e fiz programas básicos como calculadora, agenda, etc).

 

Bom, o que eu quero é que o programa abra uma tela(com os campos da imagem em anexo), e dependendo do que o usuário digitar no campo entrada e depois clicar no pesquisar, ele mostre as informações dos outros campos.

 

O TXT será semelhante ao abaixo:

 

NOME            E-MAIL               DEPARTAMENTO       CELULAR                 RAMAL

Zeca        zeca@teste.com                TI                      11 99999-9999              501

Joao        joao@teste.com                 RH                    11 98888-9888              502

Maria      maria@teste.com            Financeiro            11 97777-7777              503

 

Ex: o usuário digita na entrada 501 e clica em pesquisar.

Nos outros campos devem aparecer as informações correspondentes a linha que ele encontrou.(nome, e-mail, dpto, etc)

 

Minhas duvidas:

Qual linguagem seria melhor para eu desenvolver este aplicativo?

Como faço para ele abrir um app com uma imagem semelhante a do anexo e consiga preencher os campos?

Qual programa recomendam para eu fazer o código?

ramal.png

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Amiguinho    como você mencionou que entende a linguagem   c  então creio que essa seja a melhor opção pois em    você pode trabalhar com arquivos txt como o que você apresentou então podes fazer um programa de console que fica bom mas não é nada sofisticado, mas  em c você pode fazer interface usando a APi do windows que fica muito bom mas é bem difícil de fazer pois tem poucas informações na internet, um dos poucos arquivos que tem informações sobre api do windows é o livro programing windows de Charles Petzold .          Com c# ou java também dá para fazer mas esses dois não entendo não . 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Será que é mais fácil fazer em java? por ter mais conteudo na internet ?

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Amiguinho    Java eu não entendo, já tentei instalar alguns compiladores java, mas nunca funcionaram certo aí resolvi dar um tempo, depois tento de novo .     Mas pesquisei sobre a API Win32 e consegui fazer alguma coisa, veja esse código aqui :

    #include <windows.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <iostream.h>
    #include <stdio.h>
    #include <string.h>
    #include <vector.h>
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    {
        HWND hwnd;
        MSG messages;
        WNDCLASSEX wincl;
    
       /* WNDCLASS wnd;/*essa linha coloquei depois */
    
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = "WindowsApp";/*WindowsApp  tem que ter */
        wincl.lpfnWndProc = WindowProcedure;
        wincl.style = CS_DBLCLKS;
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);/*IDI_APPLICATION   -- MB_ICONEXCLAMATION*/
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;
        wincl.cbClsExtra = 0;
        wincl.cbWndExtra = 0;
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;/*+5=branco*/
    
       /* wnd.hbrBackground = (HBRUSH)(COLOR_BACKGROUND+2);/*essa linha coloquei depois */
    
        if (!RegisterClassEx (&wincl))
            return 0;
    
        hwnd = CreateWindowEx (
            0,
            "WindowsApp",
            "Interface De Pesquisa",
            WS_OVERLAPPEDWINDOW,
            100,/*pos x da tela de 0 ate 1280 tamanho da tela*/
            5,/*pos y da tela de 0 ate 720 tamanho da tela*/
            1024,/*largura da janela criada largura da tela*/
            720,/*altura da janela criada  altura da tela*/
            HWND_DESKTOP,
            NULL,
            hThisInstance,
            NULL
            );
    
        ShowWindow (hwnd, nFunsterStil);
    
        while (GetMessage (&messages, NULL, 0, 0))
        {
            TranslateMessage(&messages);
            DispatchMessage(&messages);
        }
    
        return messages.wParam;
    }
    
    #define ID_BUTTONPesquisar 1001
    #define ID_BUTTONSair 1002
    #define ID_BUTTONAnterior 1003
    #define ID_BUTTONProximo 1004
    
    HINSTANCE g_inst;
    HWND EditNum1,EditNum2,EditNum4,EditNum3,EditNum5,EditNum6,ButtonPesquisar,ButtonSair,ButtonAnterior,ButtonProximo;
    
    void DesenharObjectos(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        EditNum1 = CreateWindowEx (
            WS_EX_CLIENTEDGE,
            "EDIT",
            "",
            WS_VISIBLE|WS_CHILD|WS_BORDER/*|ES_RIGHT*/ ,
            200, 30, 150, 30,
            hwnd,
            NULL,
            g_inst,
            NULL
            );
    
        EditNum2 = CreateWindowEx (
            WS_EX_CLIENTEDGE,"EDIT", "",
            WS_VISIBLE|WS_CHILD|WS_BORDER,
            200, 80, 150, 30,
            hwnd, NULL, g_inst, NULL );
    
        EditNum3 = CreateWindowEx (
            WS_EX_CLIENTEDGE,"EDIT", "",
            WS_VISIBLE|WS_CHILD|WS_BORDER,
            200, 130, 150, 30,
            hwnd, NULL, g_inst, NULL );
        EditNum4 = CreateWindowEx (
            WS_EX_CLIENTEDGE,"EDIT", "",
            WS_VISIBLE|WS_CHILD|WS_BORDER,
            200, 180, 150, 30,
            hwnd, NULL, g_inst, NULL );
        EditNum5 = CreateWindowEx (
            WS_EX_CLIENTEDGE,"EDIT", "",
            WS_VISIBLE|WS_CHILD|WS_BORDER,
            200, 230, 150, 30,
            hwnd, NULL, g_inst, NULL );
        EditNum6 = CreateWindowEx (
            WS_EX_CLIENTEDGE,"EDIT", "",
            WS_VISIBLE|WS_CHILD|WS_BORDER,
            200, 280, 150, 30,
            hwnd, NULL, g_inst, NULL );
    
        ButtonPesquisar = CreateWindowEx (
            0,
            "BUTTON",
            "PESQUISAR",
            WS_VISIBLE|WS_CHILD,
            500, 30, 150, 30,
            hwnd,
            (HMENU)ID_BUTTONPesquisar,
            g_inst,
            NULL
            );
        ButtonSair = CreateWindowEx (
            0, "BUTTON", "SAIR",
            WS_VISIBLE|WS_CHILD,
            500, 130, 150, 30,
            hwnd, (HMENU)ID_BUTTONSair, g_inst, NULL);
    
        ButtonAnterior = CreateWindowEx (
            0, "BUTTON", "ANTERIOR",
            WS_VISIBLE|WS_CHILD,
            465, 80, 100, 30,
            hwnd, (HMENU)ID_BUTTONAnterior, g_inst, NULL);
    
        ButtonProximo = CreateWindowEx (
            0, "BUTTON", "PROXIMO",
            WS_VISIBLE|WS_CHILD,
            580, 80, 100, 30,
            hwnd, (HMENU)ID_BUTTONProximo, g_inst, NULL);
    
        CreateWindowEx (
            0,
            "STATIC",
            "ENTRADA",
            WS_VISIBLE|WS_CHILD,
            110,35,68,16,
            hwnd,
            NULL,
            g_inst,
            NULL
            );
        CreateWindowEx (
            0,
            "STATIC",
            "   NOME",
            WS_VISIBLE|WS_CHILD,
            110,85,68,16,
            hwnd,
            NULL,
            g_inst,
            NULL
            );
        CreateWindowEx (
            0,
            "STATIC",
            "   EMAIL",
            WS_VISIBLE|WS_CHILD,
            110,135,68,16,
            hwnd,
            NULL,
            g_inst,
            NULL
            );
        CreateWindowEx (
            0,
            "STATIC",
            "  DEPART",
            WS_VISIBLE|WS_CHILD,
            110,185,68,16,
            hwnd,
            NULL,
            g_inst,
            NULL
            );
        CreateWindowEx (
            0,
            "STATIC",
            " CELULAR",
            WS_VISIBLE|WS_CHILD,
            110,235,68,16,
            hwnd,
            NULL,
            g_inst,
            NULL
            );
        CreateWindowEx (
            0,
            "STATIC",
            "   RAMAL",
            WS_VISIBLE|WS_CHILD|BS_CENTER,
            110,285,68,16,
            hwnd,
            NULL,
            g_inst,
            NULL
            );
        SendMessage((HWND) EditNum1,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum2,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum3,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum4,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum5,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum6,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonPesquisar,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonSair,(UINT) WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonAnterior,(UINT) WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonProximo,(UINT) WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
    }
    
    char s_valor1[20] = "0",s_valor2[20];
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)
        {
            case WM_CREATE:
                DesenharObjectos(hwnd,message,wParam,lParam);
            break;
            case WM_COMMAND:
    
                if ((HIWORD(wParam) == BN_CLICKED))
                {
    
                    SendMessage(
                        (HWND) EditNum1,
    	                (UINT) EM_GETLINE,
    	                (WPARAM) 1,
    	                (LPARAM) &s_valor1
                        );
    
                    SendMessage((HWND)EditNum2,(UINT)EM_GETLINE,(WPARAM)1,(LPARAM) &s_valor2);
    
                    switch (LOWORD(wParam))
                    {
                        case ID_BUTTONPesquisar:
                            MessageBox(0,"aqui pesquisar","",0);
                        break;
                        case ID_BUTTONSair:
                            PostQuitMessage(0);
                        break;
                        case ID_BUTTONAnterior:
                           MessageBox(0,"aqui anterior","",0);
                        break;
                        case ID_BUTTONProximo:
                            MessageBox(0,"aqui Proximo","",0);
                        break;
                    }
    
                    SendMessage(
    	                (HWND) EditNum3,
    	                (UINT) WM_SETTEXT,
    	                (WPARAM) 0,
    	                (LPARAM) &s_valor1
                        );
                    SendMessage(
    	                (HWND) EditNum4,
    	                (UINT) WM_SETTEXT,
    	                (WPARAM) 0,
    	                (LPARAM) &s_valor2
                        );
    
                }
                break;
            case WM_DESTROY:
                PostQuitMessage (0);
            break;
            default:
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
        return 0;
    }

    no code blocks crie um  projeto clicando em File / Project / Win32 GUI Project  clique em go depois em next e em next depois coloque o nome do projeto depois clique em abrir  vai aparecer uma pasta com o nome do projeto, nessa pasta abra o arquivo com nome main.c ou main cpp , então quando abrir a listagem na tela selecione toda a listagem e delete ela, então cole esse código no lugar e salve ,  aí pode compilar e se depois que você fechar o programa você quiser abri-lo novamente então dessa vez abra o arquivo com o nome do seu projeto .  esse programa, desse código,   exibe uma janela com as opções que você pretende no seu programa de consultas,  então precisa criar as funções para efetuar as consultas , precisamos de tempo pois isso é complicado .    

    Editado por devair1010
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Amiguinho  Segue um tutorial básico de criação de interface em C
    http://www.forum-invaders.com.br/vb/archive/index.php/t-8290.html
     

     Você pode ter problemas pra puxar mais de 1 Janela como eu tive e um membro aqui do fórum me ajudou por isso segue o link da postagem pra você estudar posteriormente se der erro no seu também
    http://www.clubedohardware.com.br/forums/topic/1247200-c-sistema-de-login-em-ui/?tab=comments#comment-6854723
     :atirador: Inclusive caso esteja vendo esse fórum obrigado de novo Gustavo Andretto,tanto pela ajuda com a interface quanto perder um pouco do seu tempo escrevendo o código, você me ajudou demais :lol:

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Amiguinho     experimente esse código ,  testei ele aqui e está funcionando bem , então coloque ele no code blocks como  foi explicado ali em cima e também coloque esse exemplo do arquivo txt que você postou  do jeito que ele está apenas que ali no número de celular coloque todos os números juntos uns dos outros não deixando espaço entre eles , pois senão dá erro,   se você quiser deixar um espaço coloque um tracinho ou underline para fazer a separação e nas outras palavras também  e não modifique a quantidade de colunas  que no seu exemplo são cinco colunas , pois se modificar a quantidade de colunas precisa modificar também o código e salve ele com o nome de   dados de consulta do tipo txt  na raiz da unidade c pois no código está configurado assim ou se você quiser pode modificar no código onde ele deve procurar pelo arquivo . 

    o arquivo precisa ficar nesse formato :

    NOME            E-MAIL               DEPARTAMENTO       CELULAR                 RAMAL
    Zeca        zeca@teste.com               TI          (11)_99999-9999             501
    Joao        joao@teste.com               RH          (11)_98888-9888             502
    Maria       maria@teste.com          Financeiro      (11)_97777-7777             503
    kiko        kiko@teste.com           Financeiro      (11)_98877-6655             504
    Jonas       jonas@teste.com              RH          (11)_89977-4466             505
    lolipop     lolipop@teste.com            TI          (21)_92565-7457             506
    junior      junior@teste.com             RH          (11)_95566-4433             507
    manuel      manuel@teste.com             TI          (11)_93322-4477             508

         segue o código do programa :

    #include <windows.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <iostream.h>
    #include <stdio.h>
    #include <string.h>
    #include <vector.h>
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    char c1[20],c2[20],c3[20],c4[20],c5[20];
    char b1[20],b2[20],b3[20],b4[20],b5[20];
    int g,j;
    struct arquivo{
        char nome   [20];
        char email  [30];
        char depart [20];
        char celular[20];
        char ramal  [20];
      };
      struct arquivo dados[2000];
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    {
        HWND hwnd;
        MSG messages;
        WNDCLASSEX wincl;
    
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = "WindowsApp";
        wincl.lpfnWndProc = WindowProcedure;
        wincl.style = CS_DBLCLKS;
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;
        wincl.cbClsExtra = 0;
        wincl.cbWndExtra = 0;
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;/*+5=branco*/
    
    
        if (!RegisterClassEx (&wincl))
            return 0;
    
        hwnd = CreateWindowEx (
            0,
            "WindowsApp",
            "Interface De Pesquisa",
            WS_OVERLAPPEDWINDOW,
            100,    /*pos x da tela de 0 ate 1280 tamanho da tela*/
            5,      /*pos y da tela de 0 ate 720 tamanho da tela*/
            1024,   /*largura da janela criada largura da tela*/
            720,    /*altura da janela criada  altura da tela*/
            HWND_DESKTOP,
            NULL,
            hThisInstance,
            NULL
            );
    
    
        ShowWindow (hwnd, nFunsterStil);
    
        while (GetMessage (&messages, NULL, 0, 0))
        {
            TranslateMessage(&messages);
            DispatchMessage(&messages);
        }
    
        return messages.wParam;
    }
    
    #define ID_BUTTONPesquisar 1001
    #define ID_BUTTONSair      1002
    #define ID_BUTTONAnterior  1003
    #define ID_BUTTONProximo   1004
    
    HINSTANCE g_inst;
    HWND EditNum1,EditNum2,EditNum4,EditNum3,EditNum5,EditNum6,ButtonPesquisar,ButtonSair,ButtonAnterior,ButtonProximo;
    
    void DesenharObjectos(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
        EditNum1 = CreateWindowEx (WS_EX_CLIENTEDGE,"EDIT","",WS_VISIBLE|WS_CHILD|WS_BORDER/*|ES_RIGHT*/ ,
                                   200, 30, 150, 30,hwnd,NULL,g_inst,NULL );
        EditNum2 = CreateWindowEx (WS_EX_CLIENTEDGE,"EDIT","",WS_VISIBLE|WS_CHILD|WS_BORDER,200, 80, 150, 30,
                                   hwnd, NULL, g_inst, NULL );
        EditNum3 = CreateWindowEx (WS_EX_CLIENTEDGE,"EDIT", "",WS_VISIBLE|WS_CHILD|WS_BORDER,200, 130, 150, 30,
                                   hwnd, NULL, g_inst, NULL );
        EditNum4 = CreateWindowEx (WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER,200, 180, 150, 30,
                                   hwnd, NULL, g_inst, NULL );
        EditNum5 = CreateWindowEx (WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER,200, 230, 150, 30,
                                  hwnd, NULL, g_inst, NULL );
        EditNum6 = CreateWindowEx (WS_EX_CLIENTEDGE,"EDIT", "", WS_VISIBLE|WS_CHILD|WS_BORDER,200, 280, 150, 30,
                                   hwnd, NULL, g_inst, NULL );
        ButtonPesquisar = CreateWindowEx (0,"BUTTON","PESQUISAR", WS_VISIBLE|WS_CHILD, 500, 30, 150, 30,
                                          hwnd,(HMENU)ID_BUTTONPesquisar, g_inst, NULL );
        ButtonSair = CreateWindowEx (0,"BUTTON","SAIR", WS_VISIBLE|WS_CHILD,500, 130, 150, 30, hwnd,
                                    (HMENU)ID_BUTTONSair, g_inst, NULL);
        ButtonAnterior = CreateWindowEx (0,"BUTTON","ANTERIOR", WS_VISIBLE|WS_CHILD,465, 80, 100, 30, hwnd,
                                        (HMENU)ID_BUTTONAnterior, g_inst, NULL);
        ButtonProximo = CreateWindowEx (0,"BUTTON","PROXIMO", WS_VISIBLE|WS_CHILD,580,80,100,30,hwnd,
                                        (HMENU)ID_BUTTONProximo, g_inst, NULL);
        CreateWindowEx (0,"STATIC","ENTRADA" , WS_VISIBLE|WS_CHILD|BS_RIGHT,  110,  35,68,16, hwnd, NULL, g_inst, NULL);
        CreateWindowEx (0,"STATIC","   NOME" , WS_VISIBLE|WS_CHILD|BS_LEFT,   110,  85,68,16, hwnd, NULL, g_inst, NULL);
        CreateWindowEx (0,"STATIC","  E-MAIL", WS_VISIBLE|WS_CHILD|BS_CENTER, 110, 135,68,16, hwnd, NULL, g_inst, NULL);
        CreateWindowEx (0,"STATIC","  DEPART", WS_VISIBLE|WS_CHILD|BS_CENTER, 110, 185,68,16, hwnd, NULL, g_inst, NULL);
        CreateWindowEx (0,"STATIC"," CELULAR", WS_VISIBLE|WS_CHILD|BS_CENTER, 110, 235,68,16, hwnd, NULL, g_inst, NULL);
        CreateWindowEx (0,"STATIC","   RAMAL", WS_VISIBLE|WS_CHILD|BS_CENTER, 110, 285,68,16, hwnd, NULL, g_inst, NULL);
        SendMessage((HWND) EditNum1,       (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum2,       (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum3,       (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum4,       (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum5,       (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) EditNum6,       (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonPesquisar,(UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonSair,     (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonAnterior, (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
        SendMessage((HWND) ButtonProximo,  (UINT) WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),(LPARAM) lParam);
    }
    char s_valor1[50] = "0";
    FILE *fp;
    int coloca_no_edit(int g);
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)
        {
            case WM_CREATE:
                DesenharObjectos(hwnd,message,wParam,lParam);
                break;
            case WM_COMMAND:
                if ((HIWORD(wParam) == BN_CLICKED)){
                    strcpy(s_valor1,"0");
                    SendMessage((HWND)EditNum1,(UINT)EM_GETLINE,(WPARAM)1,(LPARAM) &s_valor1);
                    switch (LOWORD(wParam))
                    {
                        case ID_BUTTONPesquisar:
                            char c[20];
                            int k;
                            int h;
                            h=0;
                            k=0;j=0;g=1;
                            fp =   fopen("c:/dados de consulta.txt","r");
                            while( fscanf(fp,"%s",dados[j].nome  ) != EOF && fscanf(fp,"%s",dados[j].email  ) != EOF
                                && fscanf(fp,"%s",dados[j].depart) != EOF && fscanf(fp,"%s",dados[j].celular) != EOF
                                && fscanf(fp,"%s",dados[j].ramal ) != EOF){
                                j++;
                            }
                            fclose(fp);
                            fp = fopen("c:/dados de consulta.txt","r");
                            if(fp==NULL){MessageBox(0,"erro no arquivo","",0);}
                            while( g < j ){
                                strcpy(b1,dados[g].nome);strcpy(b2,dados[g].email);strcpy(b3,dados[g].depart);
                                strcpy(b4,dados[g].celular);strcpy(b5,dados[g].ramal);strcpy(c,s_valor1);
                                for(k=0;k<strlen(b1);k++)
                                    b1[k]=toupper(b1[k]);
                                for(k=0;k<strlen(b2);k++)
                                    b2[k]=toupper(b2[k]);
                                for(k=0;k<strlen(b3);k++)
                                    b3[k]=toupper(b3[k]);
                                for(k=0;k<strlen(b4);k++)
                                    b4[k]=toupper(b4[k]);
                                for(k=0;k<strlen(b5);k++)
                                    b5[k]=toupper(b5[k]);
                                for(k=0;k<strlen(c);k++ )
                                    c[k]=toupper(c[k]   );
                                if(strcmp(b1,c)==0||strcmp(b2,c)==0||strcmp(b3,c)==0||strcmp(b4,c)==0||strcmp(b5,c)==0){
                                    coloca_no_edit(g);
                                    h=1;
                                    break;
                                }
                                g++;
                            }
                            fclose(fp);
                            if(h==0){
                                MessageBox(0,"Esse Dado Não Existe No Arquivo","(***) Informação",0);
                                SendMessage((HWND) EditNum1, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) & "");
                            }
                            break;
                        case ID_BUTTONSair:
                            PostQuitMessage(0);
                            break;
                        case ID_BUTTONAnterior:
                            g--;
                            if ( g < 1 ){
                                g=1;
                            }
                            coloca_no_edit(g);
                            break;
                        case ID_BUTTONProximo:
                            g++;
                            if( g > j-1 ){
                                g=j-1;
                            }
                            coloca_no_edit(g);
                            break;
                    }
                }
                break;
            case WM_DESTROY:
                PostQuitMessage (0);
            break;
            default:
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
        return 0;
    }
    int coloca_no_edit(int w){
        SendMessage((HWND) EditNum2, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) &dados[w].nome    );
        SendMessage((HWND) EditNum3, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) &dados[w].email   );
        SendMessage((HWND) EditNum4, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) &dados[w].depart  );
        SendMessage((HWND) EditNum5, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) &dados[w].celular );
        SendMessage((HWND) EditNum6, (UINT) WM_SETTEXT, (WPARAM) 0, (LPARAM) &dados[w].ramal   );
        return 0;
    }

     

    Editado por devair1010
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Desculpem pela demora, só tenho o fds para fuçar em programação hehe.

     

    @devair1010

     

    Deu certo este código! Muito show! Obrigado.

     

    Apenas um item, ele funciona apenas quando pesquisa exatamente o que se tem no arquivo.

    Tem como fazer ele buscar mesmo incompleto?

     

    Ex: Buscar por: "50"

    Ele traz todos os ramais que contenham 50, ex: 508, 509, 450

     

    Ex2: Buscar por "Bru"

    Ele traz todos os nomes ou e-mails que contenha Bru, ex: bruno, bruna, breno, etc

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Amiguinho     tem como fazer sim,  mas não estou tendo muito tempo, então quando puder vou tentar fazer essa modificação, veja o que consegue  fazer e posta aqui para vermos como está .

     

    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

    ×