Resolvi aprender outra linguagem de programação pra variar um pouco. ![]()
Vira e mexe escuto alguém falando de Python, Ruby entre outras linguagens interpretadas e eu nem faço idéia de como se programa ou executa programas feitos nessas linguagens. Bom, não sabia. Andei lendo um pouco e vi que é a coisa é bem simples. Resolvi começar pelo Python. Para aqueles que estão começando do zero como eu, recomendo a leitura do artigo Aprenda a Programar. É uma pena o artigo não ter uma continuidade mas já dá uma boa idéia de com funciona tudo. Explica, por exemplo, como executar o Python no ambiente WEB. Minha surpresa foi que ele roda com o Apache através de um programa em cgi. Seguindo este artigo eu criei o meu primeiro programa em cgi, que a gente tanto houve falar quando se trata de programação web. Bom, fiquei bem animado com a idéia, e daqui pra frente devo publicar alguns posts relacionados ao Python. Aguardem e confiram.
Para obter informações de um arquivo tais como data e hora de criação, modificação, acesso entre outros, utilizamos a classe FileInfo. Esta classe, presente no namespace System.IO possui as propriedades CreationTime, LastWriteTime e LastAccessTime que retorna a informação de data e hora que o arquivo foi criado, modificado e aberto. Veja um exemplo de como utilizar a classe
FileInfo file_info = new FileInfo("C:\\meu_arquivo.txt");
string Criado = file_info.CreationTime.ToString("dd/MM/yyyy HH:mm:ss");
string Modificado = file_info.LastWriteTime.ToString("dd/MM/yyyy HH:mm:ss");
string Acessado = file_info.LastAccessTime.ToString("dd/MM/yyyy HH:mm:ss");
Se preferir pode fazer o download do projeto abaixo com um exemplo que mostra estas e outras propriedades da classe FileInfo.
Exemplo de uso da classe FileInfo (6)
Avatares são pequenas imagens que identificam uma pessoa em um blog ou forum de discussão. Quem atualizou o Wordpress para a versão 2.5 deve ter reparado nas opções de configuração de avatares no menu “Configurações - Discussão“. Lá existe a opção de “Mostrar avatares“, no entanto é preciso também adicionar uma linha no arquivo de seu template para poder exibi-los.
Para mostrar por exemplo os avatares das pessoas que comentam no se blog, abra o arquivo comments.php e adicione a linha
echo get_avatar( get_comment_author_email(), $size = '36' );
Obs.: Este código deve estar dentro do bloco de código:
foreach ($comments as $comment)
Os avatares serão exibidos baseado no e-mail da pessoa que comentou (get_comment_author_email()). Se ela possuir um registro no site do Gravatar será exibido o seu avatar, caso contrário será exibido a imagem padrão que pode ser uma imagem aleatória, basta configurar no menu do wordpress.
Veja mais sobre avatar no Wordpress em http://weblogtoolscollection.com/archives/2008/03/03/gravatars-and-wordpress-25/ ou
http://codex.wordpress.org/Using_Gravatars
Já mostrei aqui como obter o dia da semana por extenso no charp. Para poder escrever a data completa no formato “[dia da semana], [dia] de [mês] de [ano]” basta obter separadamente cada uma das partes como no exemplo a seguir.
CultureInfo culture = new CultureInfo("pt-BR");
DateTimeFormatInfo dtfi = culture.DateTimeFormat;
int dia = DateTime.Now.Day;
int ano = DateTime.Now.Year;
string mes = culture.TextInfo.ToTitleCase(dtfi.GetMonthName(DateTime.Now.Month));
string diasemana = culture.TextInfo.ToTitleCase(dtfi.GetDayName(DateTime.Now.DayOfWeek));
string data = diasemana + ", " + dia + " de " + mes + " de " + ano;
Response.Write(data);
O método ToTitleCase da classe TextInfo serve para converter a primeira letra da palavra para maiúsculo e os métodos GetMonthName e GetDayName da classe DateTimeFormatInfo servem para pegar o nome do mês e do dia da semana respectivamente.
No final a variável data conterá o dia por extenso. Por exemplo:
Domingo, 19 de Outubro de 2008
Para os dias menores que 10, se você preferir escreve-los com o zero antes basta aplicar o método ToString a variável dia.
string data = diasemana + ", " + dia.ToString("00") + " de " + mes + " de " + ano;
Para poder acessar as configurações do roteador “D Link DI 524″, basta entrar com o IP 192.168.0.1 em um navegador web. Por padrão o login de acesso é admin (todo minúsculo) e a senha você deixa em branco. Em alguns casos não revolve você pressionar a tecla enter, tem que clicar no botão mesmo. Se com este usuário e senha você não conseguir acessar tente resetar o roteador. Para resetar basta pressionar com um objeto pontiagudo o buraquinho bem pequeno que tem abaixo dele. Tenha cuidado ao resetar pois todas as configurações feitas serão perdidas e restauradas para o padrão de fábrica incluindo o usuário e a senha de acesso.
Depois de alguns dias pesquisando, encontrei algumas soluções viáveis para enviar um arquivo diretamente para a impressora (sem abrir janelas de diálogo), cada uma com suas limitações.
Solução 1: Fazer uma cópia do arquivo para o local da impressora
No prompt do DOS basta utilizar o comando:
copy nome_arquivo nome_impressora
O equivalente em C# é:
System.IO.File.Copy(nome_arquivo , nome_impressora);
Onde nome_arquivo é o nome físico completo do arquivo e nome_impressora é o nome do compartilhamento da impressora composto pelo IP ou nome da máquina mais o nome do compartilhamento.
Limitação: Imprime somente arquivos texto e a impressora deverá estar compartilhada.
Solução 2: Utilizar o comando print do windows.
Esta foi a melhor solução que encontrei. A idéia é utilizar o comando “print” do shell do Windows. Ao executar o comando, o Windows irá abrir o programa padrão estabelecido pelo tipo do arquivo e imprimir automaticamente, fechando o programa após a impressão.
Em Delphi utiliza-se o comando ShellExecute para executar um comando shell.
ShellExecute(Handle, 'print',PChar('arquivo'), nil,nil,SW_SHOW);
No Framework .Net não existe esta função, no entanto ela está implementada na dll shell32.dll do Windows. Para utiliza-la em C#, VB6 ou VB .Net devemos criar uma referência para a mesma.
[DllImport("shell32.dll", EntryPoint = "ShellExecute")]
public static extern int ShellExecuteA(int hwnd, string lpOperation,
string lpFile, string lpParameters, string lpDirectory, int nShowCmd);
Para utilizar a directiva DllImport é preciso referênciar o namespace System.Runtime.InteropServices.
Veja o exemplo a seguir utilizado em um projeto do tipo Windows Application.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace ImprimeArquivo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
Form1.ShellExecuteA(this.Handle.ToInt32(), "print", ofd.FileName, null, null, 0);
}
}
[DllImport("shell32.dll", EntryPoint = "ShellExecute")]
public static extern int ShellExecuteA(int hwnd, string lpOperation,
string lpFile, string lpParameters, string lpDirectory, int nShowCmd);
}
}
Solução 3: http://support.microsoft.com/kb/322091/pt-br
Para saber a versão de uma dll criada a partir de um projeto do tipo Class Library basta utilizar o código:
typeof(NomedaSuaClasse).Assembly.GetName().Version;
Ou, se você chamar a instrução de dentro da classe, poderá fazer:
this.GetType().Assembly.GetName().Version;
Esses métodos retornam um objeto do tipo Version, que pode ser utilizado para pegar separadamente cada tipo de versão. Por exemplo, a versão de compilação, a maior verão, a menor versão, etc…
O código abaixo exemplifica o uso destes métodos em uma classe que pode ser chamada por exemplo em uma aplicação Web ou WinForm.
public class Info
{
public static Version GetVersion()
{
return typeof(Info).Assembly.GetName().Version;
}
public static string GetVersionString()
{
Version version = Info.GetVersion();
string versionstring = version.Major + "." + version.Minor +
"." + version.Build + "." + version.Revision;
return versionstring;
}
}
Para chamar este método em sua aplicação faça por exemplo:
label.Text = "Versão:" + Info.GetVersionString();
Se estiver trabalhando com WinForms, você poderá usar o código abaixo para saber a versão do exe de sua aplicação:
Assembly.GetEntryAssembly().GetName().Version
Da mesma maneira que no exemplo anterior com a dll, poderá ser criado uma classe somente para retornar esta informação.
Obs.: Para alterar a versão da dll basta ir nas propriedades do projeto e na guia Application clique no botão “Assembly Information” como na figura abaixo.

Para pegar o valor de uma string de conexão do Web.Config basta utilizar a classe ConfigurationManager. Veja um exemplo:
string cs = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;
Onde strConn é o nome dado a sua string de conexão no Web.Config. Veja um exemplo do Web.Config:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="strConn"
connectionString="Data Source=192.168.0.1;Initial Catalog=Banco;
User ID=Usuario;Password=Senha;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Se você se deparar com o erro “The name ‘ConfigurationManager’ does not exist in the current context” é porque provavelmente você está tentando pegar o valor desta string em um projeto do tipo Class Library. Para solucionar este problema basta referenciar no seu projeto a dll System.configuration.





Comentários Recentes