quarta-feira, 30 de janeiro de 2002

0

Máscara para String

'## Esta função retorna um string formatada de acordo com uma máscara especificada
'por cerquilhas(#), junto com seus complementos. Sendo assim o caractere que for
'diferente de cerquilha será implementado na string, na ordem indicada ##
Function Mask(sfString,sfMask,bfMode)
Dim sfPart, i, ifContChar, sfFormated,sfFormatedi
   sfPart = ""
   sfFormated  = ""
   sfFormatedi = ""
   '## Caso bfMode verdadeiro, formata a String da esquerda para a direita ###
   if not bfMode then
      for i = 1 to Len(sfMask)   '## Loop de 1 ate o tamanho da string ##
         sfPart = Mid(sfMask,i,1)'## Pega caractere por caracter da mascara ##
         if sfPart = "#" then
            ifContChar = ifContChar + 1 '## Adiciona posicoes ao contador da string ##
            sfFormated = sfFormated & Mid(sfString,ifContChar,1)
         else
            '## Se for diferente de cerquilha(#) adiciona o caractere seguinte,
            'à string ##
            sfFormated = sfFormated & sfPart
         end if
      next
   else
      '## Caso bfMode falso, formata a String da direita para a esquerda ###
      i          = Len(sfMask)   '## Iguala i ao tamanho da Mascara ##
      ifContChar = Len(sfString) '## Iguala iCont Char ao tamanho da String ##
      do while ifContChar > 0 and i > 0 '## Enquanto nenhum dos contadores for igual a 0 ##
         sfPart = Mid(sfMask,i,1) '## Pega um caractere da String ##
         if sfPart = "#" then
            sfFormatedi = sfFormatedi & Mid(sfString,ifContChar,1) '## Monta a string com formatação ##
            ifContChar  = ifContChar - 1 '## Subtrai do contador da String ##
         else if sfPart <> "#" then
            sfFormatedi = sfFormatedi & sfPart '## Adiciona complemento na String ##
            end if
         end if
         i = i - 1 '## Subtrai do contador da mascara ##
      loop


      '## Inverte a string após formatada ##
      i = Len(sfFormatedi)
      do while i > 0
         sfFormated = sfFormated & Mid(sfFormatedi,i,1)
         i = i - 1 '## Subtrai 1 do contador ##
      loop
   end if


   Mask = sfFormated


End Function
response.write "<font face=""Verdana"" size=""1"">"
response.write "Normal(false): 1012345678901 + ###.##.###.##-# = "&Mask("1012345678901","###.##.###.##-#",false)&"<br>Oculta valores a direita<br>"
response.write "Inverso(true): 1012345678901 + ###.##.###.##-# = "&Mask("1012345678901","###.##.###.##-#",true)&"<br>Oculta valores a esquerda<br><br>"
response.write "Telefone: 44442222 + ####-#### = "&Mask("44442222","####-####",false)&"<br>"
response.write "CPF: 02145877896 + ###.###.###-## = "&Mask("02145877896","###.###.###-##",false)
response.write "</font>"



Esta matéria foi postada originalmente no ASP4Developers por Rafael "M4yers" Rossi (site), que na época era "...". Hoje, vai saber...

0

Extrair o nome de um arquivo a partir de uma URL dada

OLá pessoal. Tive uma vez que pegar o nome de um arquivo através de uma URL dada, e implementei a função. Caso alguém precise, a função é a seguinte: nome_arq = LEFT(RIGHT(url,INSTR(STRREVERSE(url),"/")-1),INSTR(RIGHT(url,INSTR(STRREVERSE(url),"/")-1),".")-1)


Nota: A mesma funcionalidade poderia ser alcançada com Mid( url, InStrRev( url, "/" ) + 1 ). O segredo fica por conta do InStrRev, que pesquisa uma determinada string dentro de outra, mas começando do final.



Esta matéria foi postada originalmente no ASP4Developers por João Paulo, que na época era "graduando em Sistemas de Informação pela UNESP - Bauru. Programo em ASP, JSP, JAVA, JSCRIPT, PASCAL, C, DELPHI, PROLOG e algumas outras coisas. Me interesso também por BioInformática". Hoje, vai saber...

0

Impressão sem URL

Para imprimir páginas sem que saia o número de páginas no cabeçalho e o endereço da página no rodapé basta retirar as tags HTML do documento.


Testei esse método em versões recentes do Netscape(v6.1 e v6.2) e do Internet Explorer (v5 e v6), não sei se funciona em versões mais antigas. Se alguém souber e quiser ajudar agradeço.



Esta matéria foi postada originalmente no ASP4Developers por Rafael "M4yers" Rossi (site), que na época era "...". Hoje, vai saber...

terça-feira, 22 de janeiro de 2002

0

Dificuldades em criar a string de conexão?

Um jeito fácil de contruir sua string de conexão é utilizar os arquivos .udl:


1) Crie um aruqivo .txt (botão direito, new, txt file)
2) Mude a extensão do arquivo de .txt para .udl
3) Após a confirmação de mudança de extensão, dê um duplo-clique no arquivo
3) Surgira a tela de configuração de conexão, semelhante àquela que aparece no Painel de Controle no applet ODBC
4) Configure sua conexão para o banco desejado
5) Após terminar, feche a janela de conexão.
6) Renomeio o arquivo para .txt novamente
7) Abra o arquivo .txt. Voce encontrara a string de conexão. Basta copiar para sua página ASP ou para seu programa VB.



Esta matéria foi postada originalmente no ASP4Developers por Valmir Cinquini (site), que na época era "Analista/Programador C#, VB.Net, ASP, VB, Javascript e T-SQL

www.cinquini.com.br/vcinquini>". Hoje, vai saber...

quinta-feira, 17 de janeiro de 2002

0

Proteção para aspas simples em banco de dados

Achei uma forma um pouco diferente de evitar erros de SQL com aspas simples e também diferente do que eu li neste site há um tempo (desculpem se existem ainda OUTRAS formas, eu só vi aquela de trocar ' por '') já que ele resolvia este problema mas criava um segundo pois as aspas simples eram exibidas como '' para o visitante.


Fiz uma função que troca aspas simples por um caractere especial ao inserir dados no SQL e uma segunda que transforma o caractere em aspas simples novamente. Com isso, se alguém fizer uma busca pela expressão "i'm housin" por exemplo ele realmente vai mostrar este valor e não "i''m housin" como no outro modo.


Realmente não é nada de mais mas ao menos pra mim foi bem útil.


Function Converte(Texto)
Converte = Replace(Texto,"'","¢")
End Function


Function UnConverte(Texto)
UnConverte = Replace(Texto,"¢","'")
End Function


Desta forma, quando for inserir dados no banco utilize a função Converte e quando for exibir dados do banco utilize a UnConverte.



Esta matéria foi postada originalmente no ASP4Developers por Hipper Snowball (site), que na época era "Interessado em webdev, especialmente HTML puro, ASP e CSS respeitando a w3 e procurando sempre manter o design separado do conteúdo... Além de jogador de team fortress classic ehhe". Hoje, vai saber...

1

Converter valor em Moeda com 2 casas decimais

O codigo abaixo converte um valor numerico em formato de moeda, separado por ponto
Ex.:
00,000 -> 00.00
0000 -> 0000.00
0,0 -> 0.00


<%
function convet(x)
dim pos, str, valor, decimal
pos = 0
str = ""
valor = ""
decimal = ""


 for n = 1 to len(x)
  str = mid(x, n, 1)
  if str = "," or str = "." then
   pos = n
   if n = 1 then
    valor = "0"
    decimal = mid(x, n + 1, len(x))
   else
    valor = mid(x, 1, n - 1)
    decimal = mid(x, n + 1, len(x))
   end if
  end if
 next


 if pos = 0 then
  valor = x
 end if


 valor = valor & "." & left(decimal & "00",2)
 response.write valor


end function


%>



Esta matéria foi postada originalmente no ASP4Developers por Danilo Freitas (site), que na época era "Desenvolvo páginas há dois anos, programador ASP (ha pouco tempo) e fanático em tecnologia de banco de dados". Hoje, vai saber...

quarta-feira, 16 de janeiro de 2002

0

Mudando imagens sem recarregar a página

Simples e objetivo: quer mudar uma imagem sem recarregar a página? Use a função abaixo:


function MudaImagem(novosrc){
  document.images['img1'].src = novosrc;
}



img1 é o valor do atributo name da imagem a ser mudada:



<img src="adriano.jpg" width="434" height="271" name="img1">



Você pode chamar a função através de links:



<a href="javascript: MudaImagem('site.gif')">Mudar para a imagem do site</a>
<a href="javascript: MudaImagem('adriano.jpg')">Mudar para  minha imagem</a>



Pode-se também utilizar o evento OnClick da própria imagem:



<img src="adriano.jpg" width="434" height="271" name="img1" OnClick="MudaImagem('teste.jpg')">



Outra opção interessante seria mudar o tamanho da imagem utilizando as propriedades height e width da imagem, que podem ser passadas como parâmetros de uma nova função:



function MudaImagem2(novosrc, novoheight, novowidth){
  document.images['img1'].src = novosrc;
  document.images['img1'].height = novoheight;
  document.images['img1'].width = novowidth;
}



A chamada da função teria que ser, neste caso, algo do tipo:



<a href="javascript: MudaImagem2('site.gif', 50, 150)">Mudar para a imagem do site</a>
<a href="javascript: MudaImagem2('adriano.jpg', 200, 50)">Mudar para  minha imagem</a>



Esta matéria foi postada originalmente no ASP4Developers por Adriano Nântua, que na época era "Engenheiro de software e analista de sistemas; Desenvolvedor ASP, Delphi, C/C++ e Java/JSP/Servlets; InterBase fan; Linux fan; Alvirrubro inveterado.". Hoje, vai saber...

segunda-feira, 14 de janeiro de 2002

0

Adicionando e removendo campos de um select

Esse é um exemplo de como manipular dados entre selects (listbox).


Espero que seja de grande ajuda!


<html>
<head>
<script language='javascript'><!--
function Adiciona() {
   var i=1;
   var n=0;
   do {
      var y1="document.form2.s"+i+".value";
      if (eval(y1)=='')
         n=i;
      i++;
      } while (i<=5 && n==0);
   var vs1=document.form1.campo2.selectedIndex;
   if (vs1!=-1){
   var x1="document.form2.s"+n+".value=document.form1.campo2.options[vs1].text;"
   eval(x1)
   eval("document.form2.hs"+n+".value=document.form1.campo2.options[vs1].value;");
   var x3="document.form2.b"+n+".disabled=false;"
   eval(x3)
   document.form1.campo2.options[vs1]=null;
   if (n==5)
      document.form1.botao1.disabled=true;
}
}
function Remove(n) {
   j=0;
   do {
   var y="document.form1.campo2.options["+j+"]";
      j++;
   } while (eval(y)!=null);
   j--;


   var d2text=eval("document.form2.s"+n+".value");
   var d2val=eval("document.form2.hs"+n+".value");
   dop2="var option2 = new Option('"+d2text+"', '"+d2val+"');";
   eval(dop2);
   var x2="document.form1.campo2.options["+j+"]=option2;"
   eval(x2);
   eval("document.form2.b"+n+".disabled=true;");
   eval("document.form2.s"+n+".value='';");
   document.form1.botao1.disabled=false;
}
--></script>
</head><body>


<form name='form1'>
<select name='campo2' size='11'>
   <option value='1'> Nome1
   <option value='2'> Nome2
   <option value='3'> Nome3
   <option value='4'> Nome4
   <option value='5'> Nome5
   <option value='6'> Nome6
   <option value='7'> Nome7
   <option value='8'> Nome8
   <option value='9'> Nome9
   <option value='10'> Nome10
   <option value='11'> Nome11
</select>
<input name='botao1' type='button' value='Adiciona' onclick="Adiciona();"></form>


<form name='form2' action='salvajogada.asp' method='post'>
<input type='text' name='s1' readonly size='10'>
<input type='hidden' name='hs1' value=''>
<input type='button' name='b1' disabled value='Remove' onclick='Remove(1)'><br>


<input type='text' name='s2' readonly size='10'>
<input type='hidden' name='hs2' value=''>
<input type='button' name='b2' disabled value='Remove' onclick='Remove(2)'><br>


<input type='text' name='s3' readonly size='10'>
<input type='hidden' name='hs3' value=''>
<input type='button' name='b3' disabled value='Remove' onclick='Remove(3)'><br>


<input type='text' name='s4' readonly size='10'>
<input type='hidden' name='hs4' value=''>
<input type='button' name='b4' disabled value='Remove' onclick='Remove(4)'><br>


<input type='text' name='s5' readonly size='10'>
<input type='hidden' name='hs5' value=''>
<input type='button' name='b5' disabled value='Remove' onclick='Remove(5)'><br>
</form>
</body></html>



Esta matéria foi postada originalmente no ASP4Developers por Rogério César (Craz¥ Man) (site), que na época era "Analista de Sistemas, programador, web Designer.". Hoje, vai saber...

domingo, 13 de janeiro de 2002

0

Configuração do ASP Application Settings

O IIS5 dá a você mais opções de configuração. No IIS4 voce basicamente tinha a opção de configurar sua aplicação como "in process" com o inetinfo (processo IIS) dando a voce a melhor performance, mas com o risco de uma aplicação corromper o processo IIS todo. A alternativa eraescolher "run in separate memory space", que dá mais robustes , mas ao custo de pior performance.
O IIS5 introduz o termo "isolation levels", que dá melhor controle sobre suas aplicações web:



  • "Low Isolation". Equivalente ao "in process" no IIS4. Melhor performance, mas com o risco de uma aplicação derrubar o serviço do IIS todo.

  • "Medium". é o default no IIS5, e é o novo nível no IIS5. Processos ASP dividem um único espaço de memória, mas fora do espaço do próprio IIS. Isso significa que uma aplicação ASP pode derrubar todas as outras, mas o próprio IIS continua rodando.

  • "High". Equivale ao "out of process" do IIS4. Fornece a melhor confiabilidade, ao custo de performance. Cada aplicação web tem seu próprio espaço de memória.

Para sites com taxas de hits médios, o default do IIS5 é provavelmente o melhor. Para sites com altas taxas de hits, mudar o nível de isolamento para "low" dará uma melhora na performance notável.



Esta matéria foi postada originalmente no ASP4Developers por Valmir Cinquini (site), que na época era "Analista/Programador C#, VB.Net, ASP, VB, Javascript e T-SQL

www.cinquini.com.br/vcinquini>". Hoje, vai saber...

0

Use Server.Transfer ao invés de Response.Redirect

Troque Response.Redirect por Server.Transfer

Muitas vezes, é comum redirecionarmos para uma outra página, de dentro de nosso script. No IIS4 e  ASP2 voce usaria normalmente o comando response.redirect para fazer isso. Este comando envia uma resposta para o browser para instruí-lo a requisitara nova página - portanto o browser fez essencialmente duas requisições de página ao servidor.

O IIS5/ASP3 melhorou isso, fornecendo um meio para redirecionamento server-side, chamado server.transfer, pela transferencia da execução imediata e diretamente para outra pagina, evitando o "extra round-trip" (algo como "desengate extra") do IIS4. Muito mais eficiente.



Esta matéria foi postada originalmente no ASP4Developers por Valmir Cinquini (site), que na época era "Analista/Programador C#, VB.Net, ASP, VB, Javascript e T-SQL

www.cinquini.com.br/vcinquini>". Hoje, vai saber...

quarta-feira, 9 de janeiro de 2002

3

100.000!

Chegamos a 100.000 page hits, segundo o Stats4All! Fico muito feliz com a marca (números redondos sempre são mais bonitos), mas o que me empolga é ver que tem bastante gente usando e aproveitando o que os amigos que compõem o ASP4D se esforçam em produzir e divulgar.


Fica aqui então o parabéns a todos os colaboradores e visitantes, por incentivar o ASP4D a sempre oferecer algo diferente.


[]ão!



Esta matéria foi postada originalmente no ASP4Developers por Rubens N. Farias (site), que na época era "pós-graduado em análise de sistemas orientados a objetos, MCP, MCSD, MCAD, MCSD.NET e consultor em TI, além de idealizador do projeto ASP4Developers. Desenvolve sistemas sob medida, focados na satisfação do usuário, com qualidade e custo realista.". Hoje, vai saber...

segunda-feira, 7 de janeiro de 2002

1

Problemas com Form de um só campo

Quando você tem um form com só um campo do tipo (fora o submit), sua aplicação apresentará um problema quando o usuário digitar informações e pressionar a tecla enter.


Como no exemplo.


<form action="suapagina.asp">


<input type="text" name="seu_input">


<input type="submit">
</form>



Eu encontrei uma solução, mas não sei se é das melhores.
É colocar um campo a mais. Ele não aparecerá na tela pois terá o type como "hidden" como no Exemplo:


 


<form action="suapagina.asp">


<input type="text" name="seu_input">
<input type="hidden" name="solucao">
<input type="submit">
</form>



Esta matéria foi postada originalmente no ASP4Developers por Evandro Silva de Araújo, que na época era "Desenvolvedor de Sistemas em ASP, VBScript,SQL Server 2000". Hoje, vai saber...

domingo, 6 de janeiro de 2002

0

Um pouco sobre enquetes

  Lógica de uma enquete


    A lógica de uma enquete é muito simples, mas recebi algumas solicitações por e-mail com dúvidas. Tentarei aqui, explicar como criar uma enquete.


    O minha lógica não é a melhor, mas pode ajudá-lo. Primeiramente crio três tabelas: enquetes, votos, opcoes.
    Uso das tabelas: 
      » enquetes: crio as colunas id e enquete aonde coloco as enquetes obviamente.
      » opcoes: crio as colunas id, opcoes, idenq.
      » votos: crio as colunas id, idenq, idopcao, votos.

    Agora crio o arquivo enquete.asp aonde a lógica é bastante simples. Primeiro vejo qual o id da enquete (caso existam varias). O mesmo virá em pela url (enquete.asp?id=1). Vejo o número da enquete solicitada e pego do banco de dados.
    Após isso, preciso colocar as opções de voto. As opções de voto estão em apenas uma coluna, separados por ponto e vírgula (";"), por exemplo:






TABELA "opcoes"










idopcoesidenq
1sim;não;1

    Agora preciso ler a coluna opções, separar os dados e colocar no form para enviar para a pagina de resultados.
    Para separar os dados uso a função split() a qual cria um array. Por exemplo:
    
 
   <%
      'suponhamos que a variavel Opcoes tem o valor das opcoes da tabela ("sim;não;")
      Opcoes = Split(Opcoes,";")
      
      'precisamos saber agora quantos arrays a funcao split criou, e por isso usaremos a funcao uBound()

      for i = 0 to uBound(Opcoes)
        response.write Opcoes(i) & "<br>"
      next
    %>

   
Esse código respondeu na página os dados da coluna opcoes da tabela opcoes separados. Para por no form, use sua criatividade... 
    Por exemplo, no lugar de apenas responder Opcoes(i) & "<br>", coloque o <select name="opcoes"> antes do código, e </select> depois, e aonde está o response.write Opcoes(i) .... coloque: response.write "<option value="& Opcoes(i) &">"& Opcoes(i) &"</option>".

    Agora tudo certo. Crie uma página aonde ele atualiza os dados da tabela votos e aumente um voto de acordo com a enquete e o voto selecionado. 

    Após tudo isso, apenas falta a lógica da porcentagem. A lógica de mostrar os votos é simples, apenas pegue de acordo com a enquete solicitada e responda na página. Agora, a porcentagem, muito simples também, mais vou explicar:


    <%
      'suponhamos que o total de votos (de todos) esteja armazenado na variável Total. Vou pegar apenas o valor de uma opcao. O valor da mesma está na variavel valor_opc
      porcent = valor_opc * 100 / Total
      response.write porcent & "%"
    %>

    Você entendeu? Espero que sim... pegamos o valor dos votos da opcao (suponhamos que seja 10) e do total (suponhamos que seja 100). Isso iria responder 10%. Pronto, agora você tem mais ou menos a lógica de uma enquete. Caso surja alguma dúvida, me notifique pelo e-mail: brunofuster@hotmail.com Se possível, envie com o Assunto "Enquete". Valeu! :)



Esta matéria foi postada originalmente no ASP4Developers por Bruno Fuster, que na época era " (nothing) :PP surfy (irc.brasnet.org) #webmasters, #asp, #cbjr". Hoje, vai saber...

quarta-feira, 2 de janeiro de 2002

0

Offline

Olá,


antes de mais nada gostaria de desculpar-me pelos problemas que ocorreram nos últimos dias aqui no ASP4D, que fizeram com que o site ficasse fora do ar. Uma série de eventos inesperados culminaram neste problema, mas, ao que parece, está tudo resolvido, tanto com o código quanto com o servidor.


A respeito do código, ocorreu um erro devido a um comentário feito pelo Blade (ê bleide... :). Como ele, ao que parece, estava com insônia, alterou um artigo às 02:48:24. Mas devido a um erro na minha função Today() (responsável por gerar um timestamp que é armazenado no documento XML), incorretamente gravou 2:48:24 (sem o zero).


Até ai, sem muitos problemas, se estivéssemos com o site velho. No novo site, é feita a validação do documento XML com um Schema document, quando este é carregado. Um Schema nada mais é do que a descrição das regras de estruturação dos dados e dos tipos de dados. E aqui reside o problema: um tipo dateTime espera uma data no formato aaaa-mm-ddThh:mm:ss e então já podemos imaginar os problemas. É o equivalente a um banco de dados corrompido.


Não há uma necessidade real do utilizarmos Schemas no ASP4D, uma vez que apenas o site utiliza o documento XML base. Mas, como o ASP4D é um grande laboratório do XML, criei a necessidade do Schema e implantei-o, para verificar se a minha aplicação estava fazendo as alterações corretas no banco de dados. E vejo que estava quase tudo certo...


Bom, explicado o problema, fica a recomendação: testem exaustivamente suas aplicações, lembrando o que significa testar: provar que uma determinada aplicação não funciona.



Esta matéria foi postada originalmente no ASP4Developers por Rubens N. Farias (site), que na época era "pós-graduado em análise de sistemas orientados a objetos, MCP, MCSD, MCAD, MCSD.NET e consultor em TI, além de idealizador do projeto ASP4Developers. Desenvolve sistemas sob medida, focados na satisfação do usuário, com qualidade e custo realista.". Hoje, vai saber...