Ir para conteúdo
Fórum Script Brasil

M@RcOs pS09

Membros
  • Total de itens

    39
  • Registro em

  • Última visita

Posts postados por M@RcOs pS09

  1. LuanMesquita,

    1°) Correto.

    2º) Correto.

    Olha só: Ao contrário do pascal, o return funciona como um término de uma função! Quando um return é invocado, o cursor volta para o local que foi chamado (desempilha).

    Por exemplos.: Para ficar mais prático, coloque um alert antes do return true, veja:

    ...
    return false;
    
    }
    alert("Chegou aqui!");
    return true;
    ...
    Você vai notar que quando o return false for invocado (quando um e-mail é inválido), a mensagem não será exibida, o que significa que a função terminou antes dela: no return false! Outro exemplo:
    function teste(exibir)
    {
        if (!exibir)
           return;
    
        alert("Você optou por exibir!");
    }

    Na função acima, se você instanciá-la como teste(false), nada acontecerá pois o return foi invocado. Agr, se você instanciá-la como teste(true), uma mensagem será exibida!

    Espero ter ajudado.

    Att

  2. demolish,

    100% funcionado

    program agenda_de_notas;
    uses
    crt;
    type
    reg_agenda = record
    mes:integer;
    dia:integer;
    cod:integer;
    nota:string[10];
    end;
    
    agenda = array [1..100] of reg_agenda;
    VAR cod,x:integer;
    
    procedure insere(var a:agenda; var ultimo:integer);
    begin
    clrscr;
    writeln('::Inserindo nova nota::');
    writeln;
    ultimo:=ultimo+1;
    for x := 100 downto 1 do
    begin
    if a[x].cod = 0 then
    cod:=x;
    end;
    a[ultimo].cod :=cod;
    writeln('Digite a data da nota:');
    write('Mes: ');
    readln(a[ultimo].mes);
    while (a[ultimo].mes < 1) or (a[ultimo].mes > 12) do
    begin
    writeln('Mes invalido, digite novamente: ');
    readln(a[ultimo].mes);
    end;
    
    write('Dia: ');
    readln(a[ultimo].dia);
    case a[ultimo].mes of
    2: while ((a[ultimo].dia < 1) or (a[ultimo].dia > 29)) do
    begin
    writeln('Dia invalido, digite novamente: ');
    readln(a[ultimo].dia);
    end;
    
    1,3,5,7,8,10,12: while ((a[ultimo].dia < 1) or (a[ultimo].dia > 31)) do
    begin
    writeln('Dia invalido, digite novamente: ');
    readln(a[ultimo].dia);
    end;
    
    4,6,9,11: while ((a[ultimo].dia < 1) or (a[ultimo].dia > 30)) do
    begin
    writeln('Dia invalido, digite novamente: ');
    readln(a[ultimo].dia);
    end;
    End;
    write('Digite uma nota: ');
    readln(a[ultimo].nota);
    writeln('C¢digo:', a[ultimo].cod);
    writeln;
    writeln('Pressione uma tecla para retornar ao menu.');
    readkey;
    end;
    
    //------------------------------------------------------------------------------
    
    procedure consulta(a:agenda; ultimo:integer);
    var
    m,d:integer;
    achou:boolean;
    cont:integer;
    begin
    clrscr;
    writeln('::Consultar uma nota::');
    writeln;
    write('Entre com o mes: ');
    readln(m);
    write('Entre com o dia: ');
    readln(d);
    achou:=false;
    for cont:=1 to ultimo
    do if (a[cont].mes=m) and (a[cont].dia=d)
    then begin
    achou:=true;
    writeln('Nota agendada: ');
    writeln(a[cont].nota);
    writeln('Data: ',a[cont].dia,'/',a[cont].mes);
    writeln('C¢digo: ',a[cont].cod);
    end;
    if not achou
    then writeln('Nenhuma nota foi encontrada para essa data.');
    writeln;
    writeln('Pressione uma tecla para retornar ao menu.');
    readkey;
    end;
    
    //------------------------------------------------------------------------------
    
    procedure change(var a:agenda; var ultimo:integer);
    var cod2,cont:integer;
    
    begin
    clrscr;
    Write('Informe o c¢digo: '); readln(cod2);
    for cont := 1 to ultimo do
    if (cod2 = a[cont].cod)
    then begin
    writeln('::Alterar uma nota::');
    write('Nota [', a[cont].nota, ']: ');
    write('Digite nova nota: '); readln(a[cont].nota);
    writeln('Data: ');
    write('Dia [', a[cont].dia,']: ');
    write('Digite o novo dia: '); readln(a[cont].dia);
    write('Mˆs [',a[cont].mes,']: ');
    write('Digite o novo mes: '); readln(a[cont].mes);
    Readkey;
    End;
    end;
    
    //------------------------------------------------------------------------------
    
    procedure listar(var a:agenda; var ultimo:integer);
    var cont:integer;
    begin
    clrscr;
    writeln('::Lista de Notas::');
    writeln;
    for cont :=1 to ultimo
    do begin
    if a[cont].cod <> 0
    then begin
    writeln('###');
    writeln('Codigo: ',a[cont].cod);
    writeln('Nota: ',a[cont].nota);
    writeln('Data: ',a[cont].dia,'/',a[cont].mes);
    writeln('###');
    end;
    end;
    Readkey;
    end;
    
    //------------------------------------------------------------------------------
    
    procedure ordenar(var a:agenda; var ultimo:integer);
    var
    cont,j,mes1,dia1,cod1: integer;
    nota1:string;
    
    begin //Ordenar Meses;
    for cont := ultimo downto 2 do
    for j := 1 to cont-1 do
    if a[j].mes > a[j+1].mes then
    begin
    mes1 := a[j].mes;
    a[j].mes := a[j+1].mes;
    a[j+1].mes := mes1;
    
    dia1 := a[j].dia;
    a[j].dia := a[j+1].dia;
    a[j+1].dia := dia1;
    
    cod1 := a[j].cod;
    a[j].cod := a[j+1].cod;
    a[j+1].cod := cod1;
    
    nota1 := a[j].nota;
    a[j].nota := a[j+1].nota;
    a[j+1].nota := nota1;
    end;
    
    begin //Ordenar Dias;
    for cont := ultimo downto 2 do
    for j := 1 to cont-1 do
    if a[j].mes = a[j+1].mes then
    if a[j].dia > a[j+1].dia then
    begin
    mes1 := a[j].mes;
    a[j].mes := a[j+1].mes;
    a[j+1].mes := mes1;
    
    dia1 := a[j].dia;
    a[j].dia := a[j+1].dia;
    a[j+1].dia := dia1;
    
    cod1 := a[j].cod;
    a[j].cod := a[j+1].cod;
    a[j+1].cod := cod1;
    
    nota1 := a[j].nota;
    a[j].nota := a[j+1].nota;
    a[j+1].nota := nota1;
    end;
    end;
    
    writeln('Ordenado com sucesso.');
    Readkey;
    end;
    
    //------------------------------------------------------------------------------
    
    procedure del(var a:agenda; var ultimo:integer);
    var apagar:integer;
    begin
    clrscr;
    writeln('::Excluir uma nota::');
    writeln;
    write('Digite o codigo da nota a ser excluida: ');
    readln(apagar);
    for x:=1 to ultimo do
    begin
    if apagar = a[x].cod then
    begin
    a[x].cod:=0;
    writeln('Nota removida.');
    Readkey;
    end;
    end;
    end;
    
    //------------------------------------------------------------------------------
    
    function le_opcao:integer;
    var
    opcao:integer;
    begin
    clrscr;
    writeln('Agenda de Notas');
    writeln;
    writeln('::::::::::Menu::::::::::');
    writeln('1. Inserir uma nova nota');
    writeln('2. Consultar uma nota');
    writeln('3. Alterar nota');
    writeln('4. Listar notas');
    writeln('5. Ordenar notas');
    writeln('6. Excluir nota');
    writeln('7. Sair do programa');
    
    writeln;
    writeln('Escolha uma opcao valida: ' );
    readln(opcao);
    le_opcao:=opcao;
    end;
    
    function FileExists(FileName: string): Boolean;
    var
      F: file;
    begin
      {$I-}
      Assign(F, FileName);
      FileMode := 0;
      Reset(F);
      Close(F);
      {$I+}
      FileExists := (IOResult = 0) and (FileName <> '');
    end;  { FileExists }
    
    function carregar(Arq: string;var agenda: array of reg_agenda): integer;
    var
         arquivo: file of reg_agenda;
         aux: reg_agenda;
         i: integer;
    begin
            assign(arquivo, Arq);
            if (FileExists(Arq)) then
               reset(arquivo)
            else
               rewrite(arquivo);
    
    
    
            i := 0;
            while (not eof(arquivo)) do
            begin
                    read(arquivo,aux);
                    agenda[i] := aux;
                    i := i +1;
    
            end;
            carregar := i;
    
            close(arquivo);
    
    end;
    
    
    procedure salvar(Arq: string; agenda: array of reg_agenda);
    var
         arquivo: file of reg_agenda;
         aux: reg_agenda;
         i: integer;
    begin
    
            assign(arquivo, Arq);
            rewrite(arquivo);
    
            for i:=0 to 99 do
            begin
                    aux := agenda[i];
                    write(arquivo,aux);
            end;
    
            close(arquivo);
    
    end;
    
    
    
    
    var
    vetor:agenda;
    quantidade:integer;
    op:integer;
    sair:boolean;
    begin
    sair:=false;
    quantidade := carregar('teste.dat',vetor);
    repeat
    op:=le_opcao;
    if op=1 then insere(vetor,quantidade);
    if op=2 then consulta(vetor,quantidade);
    if op=3 then change(vetor,quantidade);
    if op=4 then listar(vetor,quantidade);
    if op=5 then ordenar(vetor,quantidade);
    if op=6 then del(vetor,quantidade);
    if op>=7 then sair:=true;
    until sair;
    salvar('teste.dat',vetor);
    readln;
    
    end.

    Att

  3. IkeBoy,

    O post do Alberto Mota está correto! Like é insensitive por padrão.

    Usando a mesma idéia do Alberto Mota (que por sinal está correta), faça esta outra idéia:

    QueryAssociados.Close;
    QueryAssociados.SQL.clear;
    QueryAssociados.SQL.Add('SELECT * from TblAssociados where nomeassociado like LOWER(:nome) order by nomeassociado');
    QueryAssociados.Parameters.ParamByName('nome').Value := '%' + AnsiLowerCase(Edit1.text) + '%';
    QueryAssociados.Open;

    Pré-Requisito: SysUtils;

    Att

  4. DaniMat,

    Código corrigido:

    //...
             // Sua conexão com banco de dados aqui
             //...
    
             $login = $_POST['login']; //Supondo method=post do form
            
             //Seleciona um campoLogin da tabela usuario na qual o login seja igual a informada
             $sql = "SELECT campoLogin FROM usuario WHERE campoLogin = '$login' LIMIT 1";
    
             //Executa o sql e colhe o resultado para $res
             $res = mysql_query($sql);
    
             //Se ao pegar a linha de dados atual for nulo, então login não existe ,senaum já existe
             if ($dados = mysql_fetch_assoc($res))
             {
                     //O Login já existe
                     echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";
             }else{
                     //O Login não existe
                      $sql = "INSERT INTO usuario (campoLogin) VALUES ('$login')";
    
                     //Executa o sql inserindo o login em usuario
                     if (mysql_query($sql))
                     {
                             echo "<p style='color:blue'> Login cadastrado com êxito!</p>";
                     }else{
                             echo "<p style='color:red'> Um erro ocorreu ao tentar cadastra o login!</p>";
                     }
                        
             }

    Att

  5. MTavares,

    Use jQuery e jQuery-UI que você consegue tirar grandes efeitos com pequenos códigos!

    Para saber mais a respeito e ver demos, entre no site:

    http://jquery.com/

    http://jqueryui.com/

    Pré-requisito de conhecimento: um pouco de css (seletores);

    Para o seu caso, basta apenas deixar uma div com style='display:none'; Quando o usuário passar o mouse em cima (onMouseOver) você exibe a div,

    pelo jquery $("#idDaDiv").show(), caso contrário, use document.getElementById("idDaDiv").style.display=""; Quando o usário tirar o mous (onmouseout)

    basta apenas fazero caminho contrário (hide() pro jquery). O texto da div fica a seu critério e pode ser mudado por

    elemento.innerHtml ou pelo jquery como $("#IdDaDiv").html("codigo html").

    Att

  6. LuanMesquita,

    Questão 1:

    a parte1 guarda a posição do primeiro @ na string;

    a parte2 guarda a posição do primeiro . na string;

    a parte3 guarda o tamanho da string;

    if(!(parte1 >= 2 && parte2 >= 6 && parte3 >= 9)){

    Olha só: se a primeira ocorrêcia de arroba estiver numa posição maior ou igual a 3º posicao (começa do 0) e

    se a primeira ocorrêcia do . estiver numa posição maior ou igual a 7º posicao e

    se o tamanho da string for maior o igual a 9, então:

    Meu email está correto! Eu não preciso mostrar mensagem alguma! Daí o negado (!) pelo fato de que se tudo estivesse certo

    ele mostraria a mensagem mas, neste caso com o negado, se tudo estiver certo, ele vai para o else que no nosso caso não existe.

    Se uma ou mais condições das citadas acimas forem inválidas:

    Meu email está incorreto. Entaum (parte1 >= 2 && parte2 >= 6 && parte3 >= 9)

    me retorna falso, pois é necessário todas serem verdadeiras. Porém eu não quero usar o else, daí eu nego, pois a condição inversa que me interessa.

    Então !(parte1 >= 2 && parte2 >= 6 && parte3 >= 9) me retorna true, mostrando a mensagem!

    Questão 2: Irá retornar falso se, e somente se, uma ou mais das condições acimas forem inválidas. Por que?

    Pois se uma das condições (parte1 >= 2 && parte2 >= 6 && parte3 >= 9) forem inválidas, então, eu entro no escopo deste if ( {...} ), aí

    então será retornado false, ou seja, o form não é submetido. Caso contrário, nada acontece: o form é submetido.

    Para exemplificar melhor, se eu não usasse o negado, ficaria assim:

    if(parte1 >= 2 && parte2 >= 6 && parte3 >= 9)
           {
                  //esta parte não me interessa, pois o email está ok!
           }else{
          {
                alert("O Campo deve conter um endereço eletronico correto!");
                document.cadastro.email.focus();
    
                return false;
          }

    Espero ter ajudado.

    Att

  7. demolish,

    Para carregar, utilize a função:

    function carregar(Arq: string): boolean;
    var
         arquivo: file of reg_agenda;
         aux: reg_agenda;
         i: integer;
    begin
            try
                assign(arquivo, Arq);       
            reset(arquivo);
                result:=true;
            except
                result:=false;
            end;
    
            i := 0;
            while (not eof(arquivo)) do
            begin
                    read (arquivo,aux);
                    a[i] := aux;
                    i := i +1;
            end;
    
            close(arquivo);
             
    end;
    Para salvar, utilize a função:
    function salvar(Arq: string): boolean;
    var
         arquivo: file of reg_agenda;
         aux: reg_agenda;
         i: integer;
    begin
            try
                assign(arquivo, Arq);        
            rewrite(arquivo);
                result:=true;
            except
                result:=false;
            end;
    
            for i:=0 to 100 do
            begin
                    aux = a[i];
                    write(arquivo,aux);
            end;
    
            close(arquivo);
             
    end;

    Att

  8. Cleverson Honório Gouvêa,

    Olha só, existe programas bakanas, como Microsoft Visual Studio e wxDev-C++ que por sinal, são muito bons.

    Aliás, o wxDev-C++ foi desenvolvido em Delphi 6: Ele tem uma interface bem parecida. Ele é uma expansão do Dev-C++.

    Para saber mais do wxDev-C++: http://wxdsgn.sourceforge.net/

    Tutorial de wxDev-C++: http://www.arquivodecodigos.net/sistema/ma...igo_tutorial/32

    É bem bakana, pois você pode aprender usando o que já tem pronto!

    O Code-Blocks também vem com essa opção, no menu wxSmith.

    Segue um tutorial de GUI de C++ (puro):

    http://eliteinvaders.forumbrasil.net/progr...-gui-c-c-t8.htm

    Att

  9. postali,

    O uso da seguinte função resolve o seu problema:

    array explode  (  string $delimiter  ,  string $string  [,  int $limit  ] );
    O q faz: Ela simplesmente quebra a string em um array na qual o delimitador é informado! Ex:
    $arr = explode('_','p1_eng');
    No caso acima será criado um vetor com duas posições, na qual: $arr[0] = p1; $arr[1] = 'eng'; No caso de ser variável via post (ou get), basta você usar a seguinte idéia:
    array array_keys  (  array $input  [,  mixed $search_value  [,  bool $strict = false  ]] )
    Essa função ela retorna um array contendo as keys do vetor passado! Ex.:
    $varKeys = array_keys($_POST);
            foreach ($varkey as $key)
            {
                     $arr = explode('_',$key);
                     $pergunta = $arr[0];
                     $area = $arr[1];
                     $nota = $_POST[$key];
                     echo "Pergunta = $pergunta; Area = $area; Nota = $nota";
    
            }

    Fonte: http://php.net/manual/pt_BR/function.explode.php

    http://php.net/manual/en/function.array-keys.php

    Att

  10. DaniMat,

    Cola o código:

    echo "<p style='color:green'>".mysql_error()."</p>";
    abaixo do código:
    ...
    $sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";
    $res = mysql_query($sql);
    ...

    E depois posta o que foi impresso em verde!

    Aguardando resposta...

    Att

  11. DaniMant,

    Um exemplo de conexão:

    <?php
            $link = mysql_connect('localhost', 'usuario', 'senha');
            if (!$link) {
                  die('Erro ao conectar! ');
            }
            mysql_select_db("NomeDoBancoDeDados",$link);
    ?>

    Att

  12. DaniMant,

    Uma maneira simples de se fazer é:

    Supondo que o campo em html seja login (nome="login" do input text), no arquivo do action (pra onde o form será enviado) você pode utilizar a seguinte idéia:

    <?php
             //...
             // Sua conexão com banco de dados aqui
             //...
    
             $login = $_POST['login']; //Supondo method=post do form
             
             //Seleciona um campoLogin da tabela usuario na qual o login seja igual a informada
             $sql = "SELECT campoLogin FROM usuario WHERE campoLogin = '$login' LIMIT 1";
    
             //Executa o sql e colhe o resultado para $res
             $res = mysql_query($sql);
    
             //Se ao pegar a linha de dados atual for nulo, então login não existe ,senaum já existe
             if ($dados = mysql_fetch_assoc("$res"))
             {
                     //O Login já existe
                     echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";
             }else{
                     //O Login não existe
                      $sql = "INSERT INTO usuario (campoLogin) VALUES ('$login')";
    
                     //Executa o sql inserindo o login em usuario
                     if (mysql_query($sql))
                     {
                             echo "<p style='color:blue'> Login cadastrado com êxito!</p>";
                     }else{
                             echo "<p style='color:red'> Um erro ocorreu ao tentar cadastra o login!</p>";
                     }
                        
             }
    ?>

    Att

  13. KiiroGAZEROCK,

    Pode ser feita de no mínimo duas formas, que são:

    1) Substitua o código seu input conforme abaixo, ou seja aonde era:

    ...
    <input type="password" name="id" id="id" />
    ...
    Substitua por:
    <?php
         $valorInicial = 0;      
         $valorFinal = 10000;
    
          //Irá gerar um valor randômico de $valorInicial até $valorFinal, incluindo-os
         $valorRand = rand($valorInicial ,$valorFinal);
          
         //Se você não quiser que o usuário veja, comente a próxima linha:
         echo $valorRand;
    
         echo "<input type='hidden' name='id' id='id' value='$valorRand'/>";
    ?>
    2) Caso você não queira mostrar ao usuário o número aleatório, mude apenas o código seguinte da página Cadastra.php:
    ...
    $id = $_POST['id'];
    ...
    Para:
    $valorInicial = 0;      
         $valorFinal = 10000;
    
          //Irá gerar um valor randômico de $valorInicial até $valorFinal, incluindo-os
         $valorRand = rand($valorInicial ,$valorFinal);
         $id = $valorRand;

    Att

  14. oblinez,

    Só uma coisa: Esta dúvida é na seção Web/JavaScript.

    Coloque o seguinte código antes do form:

    <script type="text/javascript">
        function CalcularROPs(e)
        {
            var a = document.getElementById("rops"),
                b = e.value,
                res = b*1000;
            
            a.value = isNaN(res)?"1000":res;
        }
    
    </script>

    Se foi útil, responda para o tópico ser definido como resolvido!

    Att

  15. Leon Carreras,

    Existe duas formas que eu executei em casa e funcionou:

    1) Ao invés de você abrir direto do download, você faz o download primeiro depois usa o abrir do calc no menu Ficheiro;

    2) Salvar-lo como .xlsx

    Se eu encontrar algo melhor, posto aqui

    Att

  16. Leon Carreras,

    Só uma coisa: O Calc importa table em html.

    Se isso não resolve, então:

    Tem como você postar um pequeno exemplo do seguinte:

    1) Código gerado no php ao fazer o download;

    2) Visualização pelo Excel;

    3) Visualização pelo Calc;

    Daí eu ver o que consigo fazer

  17. griloleo11,

    Tente o seguinte código:

    function xml2array($source,$arr){
        $xml = simplexml_load_string($source);
        $iter = 0;
            foreach($xml->children() as $b){
                    $a = $b->getName();
                    if(!$b->children()){
                            $arr[$a] = trim($b[0]);
                    }
                    else{
                            $arr[$a][$iter] = array();
                            $arr[$a][$iter] = xml2Array($b,$arr[$a][$iter]);
                    }
            $iter++;
            }
            return $arr;
    }
    Exemplo de uso:
    $xml = ""; //contém o xml
    $myArray = array();
    $myArray = xml2Array($xml, $myArray);

    Att

×
×
  • Criar Novo...