Ir para conteúdo
Fórum Script Brasil

M@RcOs pS09

Membros
  • Total de itens

    39
  • Registro em

  • Última visita

Tudo que M@RcOs pS09 postou

  1. LuanMesquita, Não, pelo fato de a condição ser verdadeira, então o return será executado, o que levá ao fim da função! Att
  2. 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
  3. DaniMant, Corrigi o código! Att
  4. 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
  5. 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
  6. 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
  7. Unknown, Dê uma olhada no tópico abaixo: http://scriptbrasil.com.br/forum/index.php?showtopic=151963 Att
  8. demolish, Corrigi o erro, estava faltando um "do". Olha só, quando o arquivo não existir ele simplesmente não carrega. Porém, quando for salvar, se o arquivo não existir ele o cria. Daí não precisa de uma função para criar. Att
  9. 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
  10. 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; 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
  11. 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
  12. 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
  13. M@RcOs pS09

    Quebrando String PHP

    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
  14. mestre fyoda, Um passo mais afundo: http://phpbrasil.com/phorum/read.php?4,130001 http://www.php.net/manual/pt_BR/install.wi...ache2.php#98454 Att
  15. 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
  16. mestre fyoda, Duas perguntas: 1) A extensão está em php? 2) Já tentou <? phpinfo(); ?>? Se não, tente e poste o q houve Se isso não adiantou, dê uma olhada em: http://linhadecodigo.com.br/cs2/forums/thread/1283.aspx Att
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. M@RcOs pS09

    Problema com XML

    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
  24. Leon Carreras, Por que não usa .csv? Funciona em Excel, Calc,... Daí você utiliza fputcsv para escrever no arquivo. Mais sobre esta função Att
  25. M@RcOs pS09

    Contador visitas

    Helio, 1) Sua página tem que ter a extensão php 2) O código ficaria assim: <tr> <td width="200" bgcolor="#FFFFFF"><h4>Número de visitas: <?php echo contador();?></h4> </td> </tr> Att
×
×
  • Criar Novo...