Ir para conteúdo
Fórum Script Brasil

Lucas Phillip

Veteranos
  • Total de itens

    644
  • Registro em

  • Última visita

Tudo que Lucas Phillip postou

  1. Olha, não vou te dar certeza porque... eu não tenho certeza :ninja: hehe Mas eu não acho que tem como você calcular o tempo da maneira que você quer não. Eu vejo apenas 2 maneiras. Ou você calcula o tempo de resposta incluindo o tempo de tráfego na rede, ou você coloca para calcular o tempo direto no script do link que você está acessando e manda a informação junto do pacote que apenas mostra quando chegar.
  2. Olha, comparar duas imagens é até simples. Você pode utilizar o método encontrado em http://www.dreamincode.net/code/snippet2859.htm Para buscar as imagens do site para poder comparar, você pode procurar por todas dentro do código fonte, abrir no programa e comparar com a sua. A maneira mais fácil de fazer isso é utilizando expressões regulares. Agora, o programa iria acessar sites aleatórios para procurar pela imagem? Ou seria apenas alguns específicos?
  3. Você está fazendo uma aplicação web ou form? Em ASP.NET é uma maneira de se fazer (utilizando javascript) e em Windows Forms é uma outra maneira totalmente diferente.
  4. Olha, dar certo até dá. Mas é EXTREMAMENTE inseguro. alguém mal intencionado pode utilizar de algum XSS (Cross Site Script) para deletar alguma pasta que não poderia ser deletada. Se você ainda não conhece muito sobre XSS, dê uma olhada no google. O ideal é filtrar os valores de POST para que apenas valores válidos sejam processados. Olha, é possível sim. E na verdade é bem fácil. Não testei pra ter certeza, mas acho que basta modificar rmdir($dir->getPathname()); para echo $dir->getPathname(); que deve funcionar. Se não, com alguns ajustes vai :)
  5. Olha, seu código ficou todo embolado. Então está bem difícil de achar o erro. De qualquer forma, esse erro acontece quando você declara uma função com o mesmo nome mais de uma vez. Procure ai onde a função isauthorized() está sendo declarada e delete onde estiver repetido. Por exemplo: se você tem index.php que declara isauthorized(), depois dá um include em cadastro_user.php que tb declara isauthorized() você receberá esta mensagem de erro. Se o arquivo "pai" já declara a função, os "filhos" não podem declarar também. Da uma olhada ai para ver se isso está acontecendo em seu código.
  6. Pessoal, será que é possível dividir o fórum de .NET em C#, VB.NET e outras linguagens .net? Pelo que eu vi, a maioria do pessoal que ta começando com .NET no fórum inicia com VB e como já estou acostumado com C#, eu já tento ajudar em C# e vejo a resposta "Não conheço c#, to começando em vb.net". Acho que ficaria mais fácil para quem pede ajuda e para quem quer ajudar separar :) Vlw
  7. Eu queria te mostar a discussão, e não os exemplos :) Basicamente, o que o povo fala lá é que Resources são "monochrome" (não sei mt bem o que isso significa hehe). De qualquer forma, não tem como inserir um cursor de 32bits dos resoureces. Tem que ser feito direto do arquivo.
  8. Alguém poderia por favor criticar esse trabalho? http://www.ecominas.net/dev/ Eu prefiro trabalhar com desenvolvimento server-side, mas as vezes aparece uma oportunidade de fazer também o front-end da página. Mas como não é meu forte queria uma opinião antes de passar pro cliente. Obrigado.
  9. Opa, tudo joia? Olha só esta função (fonte: http://www.php.net/manual/en/function.rmdir.php) que itera sobre os arquivos e subdiretórios dentro da pasta e vai apagando tudo. <?php $path = '/path/to/directory'; $dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST); for ($dir->rewind(); $dir->valid(); $dir->next()) { if ($dir->isDir()) { rmdir($dir->getPathname()); } else { unlink($dir->getPathname()); } } rmdir($path); ?> Utilize ela e substitua rmdir por ftp_rmdir (como nosso amigo ARD falou) e deve funcionar :) falou
  10. Opa, tudo joia? Da uma lida nesta discussão no fórum do msdn. http://social.msdn.microsoft.com/Forums/en...e4-df4e442c6184 Acho que explica direitinho o que você precisa :) Qualquer coisa avisa ai! Abraços
  11. Olha, é isso ai mesmo. Maneiras de se fazer, existe milhares. Você desenvolver sua própria lógica é muito melhor do que utilizar a de outra pessoa, pois fica mais fácil de editar e tornar cada vez mais eficiente. Testa ai. Qualquer dúvida ou problema avisa ai que agente tenta te ajudar no que precisar. Agora, só uma dica. As strings no .NET são permanentes. Isso quer dizer que depois que você define uma string, ela não pode ser modificada. Pode parecer estranho a principio, porque se você fizer Dim teste as String = "Ola" teste = teste & " Lucas!" funciona. Mas na verdade, você está criando na memória 2 strings. O CLR irá criar uma string Ola, depois irá criar outra string diferente Ola Lucas! Não sei se fui claro, então vou utilizar um exemplo do seu script: lfcnVerificaExecucao = "Em execução: " & Format(ldtbDados.Rows(0).Item("DATAHORA"), "dd/MM/yyyy") & _ " " & ldtbDados.Rows(0).Item("SERVIDOR") & _ " - " & ldtbDados.Rows(0).Item("CELULA") & _ " - " & ldtbDados.Rows(0).Item("STATUSPROCESSO") Pode parecer visualmente que você esta criando uma string, mas por baixo dos panos acontece o seguinte: Nova string: Em execução Nova string: Em execução Format(ldtbDados.Rows(0).Item("DATAHORA"), "dd/MM/yyyy") Nova string: Em execução Format(ldtbDados.Rows(0).Item("DATAHORA"), "dd/MM/yyyy") ldtbDados.Rows(0).Item("SERVIDOR") Nova string: Em execução Format(ldtbDados.Rows(0).Item("DATAHORA"), "dd/MM/yyyy") ldtbDados.Rows(0).Item("SERVIDOR") ldtbDados.Rows(0).Item("CELULA") Nova string: Em execução Format(ldtbDados.Rows(0).Item("DATAHORA"), "dd/MM/yyyy") ldtbDados.Rows(0).Item("SERVIDOR") ldtbDados.Rows(0).Item("CELULA") ldtbDados.Rows(0).Item("STATUSPROCESSO") Ou seja, você acaba criando 5 strings atoa. Em um programa simples, isso não faz diferença nenhuma. Só programas com grandes quantidades de processamento, como servidores de empresas é que tem um impacto. O ideal é utilizar a classe StringBuilder ou o método estático String.Format nesses casos. Como eu falei, no seu programa não faz nenhuma diferença perceptivel. Mas é uma boa prática utilizar uma das duas maneiras :)
  12. Olha, eu vou te passar uma maneira bem genérica, que deve conseguir o que você precisa. Não é nem de longe a melhor solução.. Mas, para fazer a melhor solução eu precisaria conhecer seu código. Crie um campo estático booleano chamado IsRunning. Antes de cada método, mande um loop confirir se IsRunning está como true. Se estiver, mande a thread dormir por X minutos. Se estiver false, defina como true e inicie o processo. Quando o processo terminar, lembre-se de passar IsRunning para false Dessa maneira, enquanto um algo estiver sendo processado, os outros terão de esperar. Mas isso é cheio de falhas.. Por exemplo.. se um processo demorar muito e 2 outros iniciarem, não haverá garantias que a ordem de inicio será seguida. O terceiro poderá iniciar antes do segundo. Agora, como eu falei antes, eu faria sem usar timers. Algo assim: Crie uma lista do tipo Queue estática. Adicione os métodos (através de delegate) a essa queue. Confira se a queue possuia 0 valores. Se sim, inicie o primeiro processo utilizando o método Peek() de Queue. Quando esse primeiro processo acabar, você retira um valor da queue e dá um novo Peek(), que no caso será o proximo metodo a ser executado. Assim, se você colocar 10 metodos na lista, um irá iniciar assim que o anterior acabar. Se você adicionar mais metodos à lista enquanto ela executa, eles serão chamados assim que chegar a vez deles. Se a lista ficar vazia e você adicionar um novo método, ele será executado no mesmo instante.
  13. Olha, sem saber exatamente como está seu programa, fica dificil sugerir uma solução. Você sabe exatamente quantas tarefas são? As tarefas já estão definidas desde a execução do programa ou são geradas aleatóriamente durante sua execução? De qualquer forma, com as informações que eu tenho, eu faria diferente. Ao invés de criar um "timer" que vai ficar verificando a cada 5 minutos por exemplo se a tarefa foi concluída, eu simplesmente chamaria o método que inicia a próxima tarefa ao final da anterior.
  14. Opa, tudo joia? Eu estava criando um blog pra mim e acabei utilizando sua dúvida para fazer meu primeiro post lá, utilizando uma classe para agendar tarefas no C# que desenvolvi para uma aplicação. Vê se serve pra você: http://lucasphillip.wordpress.com/2010/10/...ndar-tarefas-c/
  15. Para que você possa acessar os dados de um objeto, que no seu caso são os formulários, é necessário possuir uma referência pro mesmo. Vou te passar a idéia básica de como fazer e tente ai. Desculpe qualquer erro. Tem uns 2, 3 anos que só programo em C#, então meu vb ta meio enferrujado ^^ 'Formulário externo (dll) 'Campo com a referência para o formulário "pai" Private pai as Form1 'Construtor da classe Private Sub New(ByRef FormParent as Form1) pai = FormParent End Sub 'Fomulário pai, quer irá abrir o novo form 'Campo com a referência para o formulário "filho" Private filho as FormularioFilho 'Metodo que irá abrir o fomulário Private Sub OpenForm() filho = New FormularioFilho(Me) End Sub Assim, você poderá acessar todos os membros publicos do formulario que abrir usando pai. e os membros do formulario aberto usando filho. Boa sorte
  16. Overload ou sobrecarga é quando existem vários métodos com o mesmo nome mas parâmetros diferentes. Ex: private void Write(string strval) { } private void Write(int intval) { } etc Da uma olhada no método FecharConexaoBD. Ele não possui overload (só existe um dele) e esse método requer um argumento, que no caso é um objeto OleDbConnection. Como você está chamando FecharConexaoDB sem passar nenhum argumento, você esta vendo esse erro de compilador.
  17. Opa, tudo joia? Seguinte, o PHP não é uma linguagem que tem tipos fortes. O que isso quer dizer? Que diferente do C#, Java e outras que tem tipos fortes, uma váriavel no PHP pode assumir o valor de uma string, logo em seguida um int por exemplo. Ate onde eu sei, eles não mudaram isso pois é uma característica da linguagem. Tem suas vantagens e desvantagens. Do mesmo modo, não é possível tipar uma função... ou seja, não é possível fazer private string Foo() { return "teste"; } O que eu vi que foi modificado na versão 5.3.3 foi o construtor da classe. Até essa versão, o construtor da classe Pessoa poderia ser function __construct() ou public function Pessoa() Mas a partir da 5.3.3, public function Pessoa() é considerado uma função comum e não um construtor.
  18. Olha, toda vez que você cria um método que possui algum valor de retorno ele necessáriamente DEVE retornar algum valor. Você colocou um controle try catch dentro do método. Se por algum motivo Conexao.Open() gerar algum erro, seu método ficará sem retorno, pois o bloco catch não retorna nada e logo após o método termina. Como o compilador não sabe se o bloco try vai ou não causar uma exceção, ele gera essa mensagem de erro. Coloque um return null; no bloco catch ou no final do método que irá corrigir esse problema. Só um detalhe. Se por acaso acontecer algum erro e ConexaoDB retornar null, você poderá receber um erro de execução (null reference) no seu programa, se algum método tentar trabalhar com o valor retornado pela ConexaoDB. Testa ai e avisa se deu :) Abraços PS: Olha, eu vi ali que você está iniciando, então deixa eu te passar um dica quente. A maior vantagem de se trabalhar com .NET é o fato de ser uma linguagem gerenciada. Ou seja, você pode sair criando objetos (new isso, new aquilo) sem se preocupar com o q vai acontecer depois, porque o coletor de lixo irá resolver o problema para você. Mas se você não estruturar bem seu código, você poderá acabar com um código pouco eficiente e em casos muito ruins, ter que gastar dinheiro com um pc melhor para suportar seu programa/site. Por exemplo: Dentro de CadastrarUsuario você instancia um novo objeto OleDbConnection: OleDbConnection AbrirConexao = new OleDbConnection(); Depois, dentro de ConexaoDB, você cria um outro objeto OleDbConnection, o retorna e aponta AbrirConexao para esse novo objeto OleDbConnection Conexao; Conexao = new OleDbConnection(@...); AbrirConexao = ConexaoDB(); Resultado? Você acaba com um objeto inútil, pois o primeiro new OleDbConnection foi substituido pelo criado dentro de ConexaoDB(). Em um quadro de testes, isso não faz diferença alguma. Mas se você um dia for desenvolver aplicações de servidores, essa prática pode tornar seu programa extremamente ineficiente. Você poderia simplesmente fazer OleDbConnection AbrirConexao; AbrirConexao = ConexaoDB(); ou OleDbConnection AbrirConexao = ConexaoDB(); Flws
  19. Isso está meio esquisito. Vocês estão apenas com o dll correto? Não possuem os arquivos .vb ou .cs. Se for o caso, você não deve adicionar ele ao seu projeto utilizando "add existing item". Utilize Add Reference. Depois disso, você poderá utilizar o formulário do dll em seu projeto. Algo como (Desculpe qualquer erro de escrita. Já faz uns 2 anos que só programo em C#): Imports NomeDaDllExterna private sub AbrirForm() Dim FormularioExterno as new NomeDoFormulario FormularioExterno.Show() end sub A não ser que o formulário que você quer utilizar do assembly externo foi qualificado como "privado" pelos desenvolvedores, não vejo problemas em utilizar o form. Mas não faz muito sentido, pois do que adianta você criar um dll com um formulário e publicá-lo, mas não permitir que ninguém o utilize :blink: hehehe
  20. Olha, não tem como fazer isso não. Depois que um código é compilado, sua única opção é utilizar de engenharia reversa para poder tentar remontar o código e fazer as alterações necessárias. Como o .NET é uma linguagem gerenciada, o dll dela está em um formato chamado "IL" ou Linguagem Intermediária. Você pode utilizar um aplicativo chamado ildasm.exe que vem com o Visual Studio. Você terá acesso à IL da dll. Contúdo, se você não possuir conhecimento suficiente, isso não servirá de nada, pois a IL é um linguagem mais de baixo nível e mais dificil para humanos compreenderem. Agora, o que exatamente você precisa modificar? Porque existem alternativas que talvez possam te ajudar sem que seja necessário refazer toda a dll, como sombreamento de membros.
  21. Não tenho certeza e nem testei, mas se você utilizar preg_match ao invés de preg_match_all não resolve não?
  22. Lucas Phillip

    .net

    Olha, dominar é uma palavra meio forte ne? Quem sabe daqui a uns 30 anos hehehe. Eu sei bem e utilizo C#. Mas eu gosto de trabalhar com ele para aplicações desktop ou mesmo console. Não é que eu não goste de asp.net. É só que eu prefiro PHP :) Por que eu prefiro php? Nada demais. Apenas motivos pessoais, como foi uma das primeiras linguagens que eu aprendi, é mais barato, tem mais projetos gratuitos, como fóruns, portais etc etc. No fim das contas, acho que você deve escolher a linguagem que você se identifica mais, pois você pode fazer a mesma coisa com todas.
  23. Lucas Phillip

    .net

    Opa, tenho certeza de que existem pessoas mais qualificadas para responder isso, porque eu pessoalmente não gosto de ASP.NET. Bom, basicamente, ASP.NET não é uma linguagem propriamente dita. Quando você faz uma página em asp.net, a programação dela é feita em alguma das linguagens do .net (vb.net, c# etc). De uma maneira BEEMMMM simplista, pense no asp.net como o responsável por juntar o HTML (pedaço que fica no cliente do seu código), com o C# (pedaço que fica no servidor do seu código). A partir disso você pode perceber que c# é utilizado tanto para desenvolvimento de sites quando para aplicações desktop.
  24. Olha, eu honestamente não entendi nada do que você falou. Então vou me basear nessa sua fala para dar uma resposta Você quer um único PHP que receba informações de vários forms diferentes e envie tudo por email correto? Se for isso, acho q a maneira mais simples de fazer é passar tudo como valores do formulario para o PHP Ex: formulario1.html <form method="post" action="formularioTESTE.php"> <input type="hidden" name="titulo" value="Formulário de cadastro – TESTE"> <input type="hidden" name="informacao" value="informacao01"> </form> formulario2.html <form method="post" action="formularioTESTE.php"> <input type="hidden" name="titulo" value="Formulário de cadastro – Segundo TESTE"> <input type="hidden" name="informacao" value="informacao02"> </form> e no php <?php $mensagem = "informacao01".$_POST['informacao']." \n"; mail("janderson.design@yahoo.com.br",$_POST['titulo'], $mensagem); echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=http://www.teste.com.br/agradecimentos.asp'>"; ?> Dando um mesmo nome para todos os membros do formulário, você pode fazer um php receber e trabalhar com a informação de vários formulários diferentes. Espero ter ajudado.
  25. Opa, tudo joia? Apenas completando a resposta de nosso amigo, se você utilizar int.Parse e no textbox não possuir um valor que possa ser convertido para número (como letras), vai gerar um erro no tempo de execução. Então você deve fazer a conversão dentro de um bloco try catch para evitar que seu programa trave. Você também pode utilizar int.TryParse como alterantiva. Ele retorna verdadeiro se for possível converter o valor ou falso se não for. De uma olhada nesse artigo http://dotnetperls.com/int-tryparse
×
×
  • Criar Novo...