Ir para conteúdo
Fórum Script Brasil

Zeero

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Posts postados por Zeero

  1. Você pode incluir a propriedade "Nível" na classe de usuários e fazer uma verificação desse valor ativando e desativando botões num form principal dependendo da resposta da verificação.

    Por exemplo:

    If usuario.nivel < 3 Then 'defini nível 3 para o atendente

    btnAtendente1.Enabled = True

    btnAtendente2.Enabled = True

    ' . . .

    End If

    Você pode fazer comunicação de forms para facilitar essa interação.

    Abraços

  2. Você complicou um pouco o código.

    Desenvolvi duas soluções simples:

    Varredura nos caracteres:

    Function FLUCase(ByVal strFrase As String) As String
            Dim i As Integer
            Dim buff As String
    
            For i = 1 To strFrase.Length
                If i = 1 OrElse Mid(strFrase, i - 1, 1) = Chr(32) Then
                    buff &= UCase(Mid(strFrase, i, 1))
                Else
                    buff &= Mid(strFrase, i, 1)
                End If
            Next
            Return buff
        End Function
    Varredura nas palavras:
    Function FLUCase(ByVal strFrase As String) As String
    Dim buff As String
    Dim tolk As Object() = Split(strFrase, Chr(32))
    Dim i As Integer
    
    For i = tolk.GetLowerBound(0) To tolk.GetUpperBound(0)
        buff = buff & UCase(Mid(tolk(i), 1, 1)) & Mid(tolk(i), 2, Len(tolk(i))) & Chr(32)
    Next
    buff = Mid(buff, 1, Len(buff) - 1) 'Remove o espaço sobressalente.
    
    Return buff
    End Function

    É engraçado como na programação temos vários caminhos que dão no mesmo fim.

    Abraço.

  3. A forma mais inteligente de desenvolver tal aplicação é utilizando sistema de tolkiens(a função Split do VB).

    Neste caso primeiro você deve ler o arquivo completamente. Proceda como achar melhor com base nesse código:

    Dim Arq As Integer
    Dim Linha As String
    Dim Conteudo As String
    
    Arq = FreeFile
    
    Open "C:\ .. Onde está o seu arquivo .TXT" For Input As #Arq
    Do While Not EOF(Arq)
        Input Line sLinha
        If Conteudo = vbNullString Then
            Conteudo = sLinha
        Else
            Conteudo = Conteudo & vbCrLf & sLinha
        End If
    Loop
    Close #Arq
    Assim você terá todo o conteúdo do arquivo dentro da variável Conteudo. No caso da primeira dúvida, não precisariamos dividir a variável em tolkiens, bastaria colocar um contador no loop Do-While e na terceira repetição do código atribuir o valor de sLinha à variável em questão, ou utilizar algum tipo de função Seek para "navegar" pelo arquivo. Porém vou explicar como fazer com tolkiens, pois assim podemos resolver os dois problemas. Na primeira dúvida queremos a terceira linha do conteúdo do arquivo, logo vamos ter que separar o conteúdo tendo como critério o caracter [ENTER] composto pelos caracteres 13 e 10, no caso do VB temos a constante vbCrLf. Ficaria assim:
    Dim Linhas As Variant
    Linhas = Split(Conteudo, vbCrLf)
    
    'Lembrando que Linhas(0), será a primeira linha, Linhas(2) será a terceira.
    MsgBox Linhas(2)
    Quanto a segunda dúvida, podemos utilizar o caracter '=' como critério para a divisão da string:
    Dim TermosDivididos As Variant
    TermosDivididos = Split(Conteudo, "=")
    
    'Podemos fazer uma varredura e encontrar os valores a partir dos termos que os antecedem. Exemplo:
    'Se o valor é "João Pedro" eu sei que o que antecede o "=" é Nome. (Nome = João Pedro).
    For i = LBound(TermosDivididos) To UBound(TermosDivididos)
        If TermosDivididos(i) = "Nome" Then
            MsgBox "Valor encontrado no campo nome: " & TermosDivididos(i + 1)
        ElseIf TermoosDivididos(i) = "Idade" Then
            MsgBox "Valor encontrado no campo idade: " & TermosDivididos(i + 1)
        End If
    Next

    Essa é uma das várias soluções para sua dúvida.

    Lembrando que os termos podem não ser exatamente iguais ao que você comparar. Quero dizer, "nome " não é igual a " nome" que não é igual a "nome". Daí você pode utilizar a função Trim() para acabar com os espaços sobressalentes, mas o mais seguro mesmo é utilizar InStr() para procurar melhor a sua string.

    Abraços.

  4. Você pode utilizar CheckBoxs com a propriedade .Style = 1. Daí você pode repetir um mesmo código, para fazer elas voltarem ao normal ao clicar em outra, em todos os eventos Click, ou fazer um array de controles utilizando a propriedade Index. Daí ficaria mais ou menos assim:

    Private Sub SuaCheckBox_Click(Index)
    Dim i As Integer
    'Desabilita todas as CheckBoxs, exceto a que foi clicada:
        For i = LBound(SuaCheckBox) To UBound(SuaCheckBox)
            If i <> Index Then SuaCheckBox(i).Value = 0
        Next
    
    'Código de cada CheckBox separado pela Caption(também poderia ser pelo Index mesmo):
    Select Case SuaCheckBox(Index).Caption
        Case "Fechar Programa":
            'código ...
        Case "Abrir Banco de Dados":
            'código ...
    End Select
    End Sub

    É por aí...

    Abraço.

  5. Essa é uma função que eu desenvolvi para desenhar cubos em C. Criei uma variável que chamei de índice de rotação, a partir dela a função desenha o cubo com certa inclinação, com um loop podemos fazer uma animação 3D de rotação.

    O movimento é rotativo, isto é: o cubo gira em seu próprio eixo.

    É um ótimo exemplo pra quem está começando a programar com gráficos em C.

    Minha função:

    /* Criação de Cubos por Raphael Pina Viana */
    void drawCube(int x, int y, int aresta, int ir)
    {
        int i;
        float dif = (aresta / 2); /* constante diferenca */
    
        if(ir > aresta / 2)
        {
            ir = ir % (aresta / 2);
        }
    
        /* Quadrado Principal */
        line(x, y + (2 * ir), x - ir, y + aresta - ir);
        line(x, y + (2 * ir), x + aresta, y + (2 * ir));
        line(x + aresta, y + (2 * ir), x + aresta - ir, y + aresta - ir);
        line(x + aresta - ir, y + aresta - ir, x - ir, y + aresta - ir);
    
        /* Arestas que ligam os dois quadrados */
        line(x, y + (2 * ir), x - dif + ir, y - dif + ir);
        line(x + aresta, y + (2 * ir), x + dif + ir, y - dif + ir);
        line(x - ir, y + aresta - ir, x - dif, y + dif - (2 * ir));
        line(x + aresta - ir, y + aresta - ir, x + dif, y + dif - (2 * ir));
    
        x = x - dif;
        y = y - dif;
    
        /* Quadrado Secundario */
        line(x + ir, y + ir, x, y + aresta - (2 * ir));
        line(x + ir, y + ir, x + aresta + ir, y + ir);
        line(x + aresta + ir, y + ir, x + aresta, y + aresta - (2 * ir));
        line(x + aresta, y + aresta - (2 * ir), x, y + aresta - (2 * ir));
    }
    Explicação das variáveis de chamada: X e Y são as coordenadas X e Y do ponto superior esquerdo do quadrado principal do cubo. Aresta é o comprimento de cada "traço" que compõe o cubo. ir é o índice de rotação. Um sistema que eu criei para alterar o desenho do cubo em seu próprio eixo, fazendo o efeito de rotação. Note que o índice de rotação deve valer de 0 até a metade do valor da aresta. Logo 0 e (aresta / 2) é o estado estático do cubo. Um exemplo que eu criei em que o cubo da 5 voltas e para, daí você pressiona qualquer tecla e a aplicação é finalizada:
    /* Animação 3D, por Raphael Pina Viana */
    #include <stdio.h>
    #include <conio.h>
    #include <dos.h>
    #include <graphics.h>
    
    int main()
    {
        /* VARIAVEIS */
        int far *gDriver, *gMode;
        int color = WHITE;
        int i;
    
        /* FUNCOES */
        void drawCube(int, int, int, int);
    
        /* Inicia componentes gráficos */
        detectgraph(gDriver, gMode);
        initgraph(gDriver, gMode, '');
    
        for(i = 0; i <= 40 * 5; i ++)
        {
            cleardevice();
            drawCube(450, 200, 80, i);
            delay(25000);
        }
    
        /* Fecha componentes gráficos e encerra o programa */
        getch();
        closegraph();
        return 1;
    }
    
    void drawCube(int x, int y, int aresta, int ir)
    {
        int i;
        float dif = (aresta / 2); /* constante diferenca */
    
        if(ir > aresta / 2)
        {
            ir = ir % (aresta / 2);
        }
    
        /* Quadrado Principal */
        line(x, y + (2 * ir), x - ir, y + aresta - ir);
        line(x, y + (2 * ir), x + aresta, y + (2 * ir));
        line(x + aresta, y + (2 * ir), x + aresta - ir, y + aresta - ir);
        line(x + aresta - ir, y + aresta - ir, x - ir, y + aresta - ir);
    
        /* Arestas que ligam os dois quadrados */
        line(x, y + (2 * ir), x - dif + ir, y - dif + ir);
        line(x + aresta, y + (2 * ir), x + dif + ir, y - dif + ir);
        line(x - ir, y + aresta - ir, x - dif, y + dif - (2 * ir));
        line(x + aresta - ir, y + aresta - ir, x + dif, y + dif - (2 * ir));
    
        x = x - dif;
        y = y - dif;
    
        /* Quadrado Secundario */
        line(x + ir, y + ir, x, y + aresta - (2 * ir));
        line(x + ir, y + ir, x + aresta + ir, y + ir);
        line(x + aresta + ir, y + ir, x + aresta, y + aresta - (2 * ir));
        line(x + aresta, y + aresta - (2 * ir), x, y + aresta - (2 * ir));
    }

    Programa com a animação: http://rapidshare.com/files/96573512/3D_em_C.zip.html

    Abraços !

  6. E aí galera.

    Esse aplicativo utiliza o speaker do gabinete para transmitir mensagens em código morse. O usuário escreve a mensagem, o programa converte para código morse e trasmite pelo speaker.

    Note: se o speaker da sua máquina não estiver funcionando a mensagem não será transmitida.

    Código:

    #include <stdio.h>
    #include <conio.h>
    #include <dos.h>
    #include <math.h>
    
    char morse[600];
    int c = 0;
    
    int main()
    {
        char msg[200];
        int i;
    
        void addDitDah(char);
    
        printf("Telegrafo C v1.0\n");
        printf("por Raphael Pina Viana\n\n");
    
        printf("Mensagem: ");
    
        for(i = 0; i < 200; i++)
        {
            printf("%c", msg[i] = getch());
            if(msg[i] == 13)
            {
                msg[i] = '';
                break;
            }
        }
        printf("\n");
    
        printf("\n\nEncriptando mensagem ... ");
        for(i = 0; i <= 200; i++)
        {
            /* Converte para Alfabeto em Codigo Morse */
            switch(msg[i])
            {
                case (int)'a':
                {
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'b':
                {
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'c':
                {
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'d':
                {
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'e':
                {
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'f':
                {
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'g':
                {
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'h':
                {
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'i':
                {
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'j':
                {
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'k':
                {
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'l':
                {
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'m':
                {
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'n':
                {
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'o':
                {
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'p':
                {
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'q':
                {
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'r':
                {
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'s':
                {
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case (int)'t':
                {
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'u':
                {
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'v':
                {
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'w':
                {
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'x':
                {
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'y':
                {
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('0');
                    break;
                }
                case (int)'z':
                {
                    addDitDah('-');
                    addDitDah('-');
                    addDitDah('.');
                    addDitDah('.');
                    addDitDah('0');
                    break;
                }
                case 32:
                {
                    addDitDah('/');
                    break;
                }
                case 0:
                {
                    addDitDah('');
                    break;
                }
            }
        }
    
        printf("[OK]\n\nPressione qualquer tecla para trasmitir mensagem ...");
        getch();
    
        for(i = 0; i <= 600; i++)
        {
            nosound();
            delay(9 * pow(10, 15));
            if(morse[i] == '.')
            {
                sound(200);
                delay(10000);
            }
            else if(morse[i] == '-')
            {
                sound(200);
                sleep(1);
            }
            else if(morse[i] == '0')
                sleep(1);
            else if(morse[i] == '/')
                sleep(2);
            else if(morse[i] == '')
                break;
        }
    
        printf("\n\nTrasmissao terminada.");
        getch();
        return 1;
    }
    
    void addDitDah(char DitDah)
    {
        morse[c] = DitDah;
        c++;
    }

    Download(*.exe + *.c): http://rapidshare.com/files/97004799/Tel_grafo.rar.html

    Abraço.

×
×
  • Criar Novo...