Jun/0915
AULA de CSS/Tableless Montagem ( para IE7 e FF ) - 01
Aula dia 02/07 às 22:00 GRATUITA
Para se inscrever na aula que é via MSN, deixe um post aqui com seu Nome Completo, as pessoas que não tiverem meu MSN mande através do e-mail contato@tedk.com.br o endereço de MSN para ser adicionado, terá limite de cadastrados
O Material didático será dado no MSN mesmo, através de links
A Aula será através do meu MSN, qualquer dúvida só será esclarecida no dia ou através desse mesmo tópico depois da aula.
O Curso de CSS será o básico para o aprendizado ágil de montagem de sites em tableless.
Requisitos:
- Obrigatoriamente noção de HTML:
- Internet Explorer 7 ou superior e Mozilla Firefox 2 ou superior instalado:
- Algum programa de Desenvolvimento com por exemplo NotePad++ ou Adobe Dreamweaver.
Dúvidas sobre como será a aula, mande através de e-mail, qualquer comentário que não for de inscrição através desse tópico será excluído.
Arquivo da Aula : Baixe aqui!
Jun/090
Simulando herança com ASP
Titulo: Simulando herança com ASP
Herança em ASP? E tem?
A resposta é bem objetiva, NÃO. Mais você pode "simular" uma herança no ASP, como fazer isso?
Primeiro você tem que entender o que é herança.
Permitindo o compartilhamento de atributos entre classes, baseando-se em relacionamentos.
Com herança você pode criar subclasses para herdar operações, métodos e outros atributos semelhantes que sejam usados varias vezes em seu código, resumido evita você ficar criando três, quatro, cinco vezes a mesma coisa.
Com esse conceito vamos usar um exemplo em C#.
using System;
public class ClasseExemplo {
public void printf(){
Console.WriteLine(" Master");
}
}
public class ClasseGeral : ClasseExemplo {
public ClasseGeral(){
Console.WriteLine("Usuário");
}
public static void Main(){
ClasseGeral result = new ClasseGeral();
result.printf();
}
}
o Resultado do compilador sai ( Usuário Master ).
Para simular em ASP a coisa é diferente, precisamos criar duas classes também, a diferença são os setamentos delas e as chamadas na página.
Vamos criar uma classe "Pessoa", com subclasse "setNome"
class Pessoa
public sub setNome()
response.write("Ted k'")
end sub
end class
Desenvolvendo logo abaixo a classe "Frase", com a mesma subclasse "setNome".
class Frase
public sub setNome()
response.write(", É assim que tem que ser!")
end sub
end class
Fora das classes, você agora tem que criar um "sub" para chamar os valores setados logo abaixo, assim:
public sub geral(valor) response.write(valor.setNome()) end sub
E no final gere as impressões:
set ps = new Pessoa set fs = new Frase call geral(ps) call geral(fs)
Vamos para o código completo:
<%
class Pessoa
public sub setNome()
response.write("Ted k'")
end sub
end class
class Frase
public sub setNome()
response.write(", é assim que tem que ser!")
end sub
end class
public sub geral(valor)
response.write(valor.setNome())
end sub
set ps = new Pessoa
set fs = new Frase
call geral(ps)
call geral(fs)
%>
Na tela sai assim: ( Ted k', é assim que tem que ser!)
Pronto galera, conseguimos simular herança em ASP, agora é adaptar a necessidade e usar...
Abraços, até o próximo artigo.
Jun/090
Forçando Downloads com ASP
public function download(arquivo, pasta)
dim objStream
set objStream = server.createObject("ADODB.Stream")
with (response)
.buffer = true
.addHeader "Content-Type","application/x-msdownload"
.addHeader "Content-Disposition","attachment; filename="&arquivo
.flush
end with
with (objStream)
.open
.type = 1
.loadFromFile server.mapPath(pasta)
end with
response.binaryWrite objStream.read
set objStream = nothing
response.flush
end function
Apr/090
Você sabe usar a função Replace() do ASP?
Uma função que parece ser bem simples, porém nem todos sabem utilizar por completa.
Nesse artigo vou mostrar como usar corretamente e com eficiência essa "simples função".
Todos nós programadores ASP sabemos usar simplificada a função Replace(), segue um exemplo:
<% dim frase frase = "Por uma internet sempre criativa e dinâmica" response.write(replace(frase, "sempre", "mais")) %>
Uma maneira simples, usamos o texto que está em pauta seguido da palavra que queremos substituir e depois da palavra que queremos colocar no lugar.
replace(texto em pauta, palavra que sai, palavra que entra)
Resultado o Script: "Por uma internet mais criativa e dinâmica"
OBS: a função replace() é "Case Sensitive" se quiser substituir "A" por "a", onde existir o "A" maiúsculo será substituído pelo "a" minúsculo.
Vamos para a parte que interessa mais:
No texto "Por uma internet mais criativa e dinâmica" queremos que a letra "i" de "internet" seja maiúscula e não as outras, como fazer isso?
Seguindo essa sequência "replace(texto em pauta, palavra que sai, palavra que entra)", existem mais três parâmetros opicionais que complementam a função:
* Posição inicial;
* Count (um contador que especifica o número de substituíção);
* Comparador de Strings (caso binário de padrão "zero" ou texto).
Segue o exemplo:
<% dim frase frase = "Por uma internet mais criativa e dinâmica" response.write(replace(frase, "i", "I", 1,1,1)) %>
Resultado do Script: "Por uma Internet mais criativa e dinâmica"
No parâmentro inicial você também pode usar ele como um "cortador de letras", exemplo: Eu não quero mais que apareça a palavra "Por", então cortamos três letras da frase, caso queira cortar o espaço também e usar quatro no contador fiquem a vontade, mais para isso usamos a função trim() que não vem ao caso.
Segue o exemplo:
<% dim frase frase = "Por uma internet mais criativa e dinâmica" response.write(replace(frase, "u", "U", 4,1,1)) %>
Resultado do Script: "Uma internet mais criativa e dinâmica"
Notem que coloquei no valor da posição o número "4" (quatro) e explicarei por que.
O valor padrão da posição inicial vem de default "1" (um) e não "0" (zero) como estamos acostumados em outras funções por isso adicionamos mais um valor no contador no caso "3 + 1".
E o que falar da última posição o "Comparador de Strings")
Olha como funciona:
Segue o exemplo:
<% dim frase frase = "Elegante" response.write(replace(frase, "e", "€", 1,1,0)) %>
Se eu deixar o valor inicial como "1" (um), e pegar só uma letra "e" e colocar no Comparador de Strings "0" (zero) o resultado sai:
Resultado do Script: "El€gante"
Ele não considerou a letra maiúscula "E" inicial, mais se eu trocar o último parâmentro para "1" (um), vamos ver no que gera.
Segue o exemplo:
<% dim frase frase = "Elegante" response.write(replace(frase, "e", "€", 1,1,1)) %>
Resultado do Script: "€legante"
Ele agora sim reconhece o primeiro "e" e faz a alteração, tenha muito cuidado quando for usar o Comparador de Strings, oks?
Abraços amigos, e vamos tomar conhecimento da linguagem para não fazer trabalho desnecessário:
Até o próximo artigo!
Mar/099
Combo Dinâmico com AJAX
Default.asp
<html>
<head>
<title>Teste Combo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript" src="ajax.js"></script>
</head>
<body>
Categoria:
<select name="categoria" onchange="alimentarCombo(this.value);">
<option value="">[ Selecione ]</option>
<%
set rs = conn.execute("SELECT codigo, nome FROM categoria ORDER BY nome ASC")
if (not rs.eof) then
while (not rs.eof)
response.write("<option value="""&rs("codigo")&""">"&rs("nome")&"</option>")
rs.moveNext : wend
end if
set rs = nothing
%>
</select>
<br>
Sub-Categoria: <div id="resultado"></div>
</body>
</html>
ajax.js
function GetXMLHttp() {
if (navigator.appName == "Microsoft Internet Explorer") {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
var mod = GetXMLHttp();
function alimentarCombo(valor) {
mod.open("GET", "Carrega.ajax.asp?id="+valor+"", true);
mod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
mod.onreadystatechange = function() {
if (mod.readyState == 4) {
document.getElementById("resultado").innerHTML = mod.responseText;
}
};
mod.send(null);
}
Carrega.ajax.asp
<select name="sub_categoria">
<option value="">[ Selecione ]</option>
<%
set rs = conn.execute("SELECT codigo, nome FROM sub_categoria WHERE categoria_id = '"&request.queryString("id")&"'")
if (not rs.eof) then
while (not rs.eof)
response.write("<option value="""&rs("codigo")&""">"&rs("nome")&"</option>")
rs.moveNext :wend
end if
set rs = nothing
%>
</select>


