jueves, 19 de febrero de 2009

[VB NET] --> Enviar email mediante código

Con este truco podrás enviar un email a varios usuarios desde el código, por ejemplo tras recibir un comentario.

Dim correo as New MailMessage
Dim smtp as New SmtpClient
Dim msg ,comment as String

Try
correo.From=New MailAddress("midireccion@miservidor.com")
correo.To.Add("usuario1@suservidor.com")
correo.To.Add("usuario2@suservidor.com")
correo.Subject="Escribe aquí el Asunto del email"
msg = "Hola, te envío este email para comunicarte que en breve solucionaremos tu consulta"
correo.Body=msg
correo.Priority=MailPriority.Normal
smtp.Host="smtp.miservidor.es" ' pon aquí tú servidor de salida
smtp.Credentials=New System.Net.NetworkCredential("miusuario","micontraseña")

smtp.Send(correo)
Catch ex as Exception
MessageBox.Show("Ha ocurrido un error mientras se enviaba el mensaje")
End Try

miércoles, 18 de febrero de 2009

[VB NET] --> Copiar datos a portapapeles

En el siguiente ejemplo muestro como podemos copiar el contenido de un DataGridView al portapapeles de Windows para posteriormente poder pegarlo por ejemplo en una Hoja de Excel.

dataGrid1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithAutoHeaderText
Clipboard.SetDataObject(datagGrid1.GetClipboardContent)

martes, 17 de febrero de 2009

[VB NET] --> Comprobar si existe un directorio

A veces es necesario comprobar si existe un directorio antes de alojar un archivo en él para evitar la aparición de un error en tiempo de ejecución.

En el siguiente ejemplo compruebo la existencia del directorio: C:\prueba\log y en caso de no existir lo creo.

Dim path$
path="C:\prueba\log"

If System.IO.Directory.Exists(path) = False then
System.IO.Directory.CreateDirectory(path)
End If

[VB NET] --> Redimensionar un vector

Para redimensionar un vector de datos primero es necesario declararla sin tamaño. Por ejemplo creamos la matriz temperaturas que va a almacenar datos decimales.

Dim temperaturas() as double

Cuando necesitemos redimensionarla posteriormente en el código lo haremos con la sentencia Redim con el número de elementos deseados.

Redim temperaturas (0 to 100)

Es importante hacer notar que esta sentencia resetea el vector, es decir, se pierden los datos almacenados anteriormente. Para mantener los datos insertados, por ejemplo, ahora queremos añadir un valor más pero no queremos que se pierdan los 100 anteriores escribiremos:

Redim Preserve temperaturas (0 to 101)

[Matlab] --> Ajustar puntos a una recta por mínimos cuadrados

Con el toolbox de optimización puedes realizar el ajuste de una serie puntos a una recta de la siguiente forma:

Supongamos los 2 vectores peso y estatura los cuales los queremos ajustar a una recta del tipo: peso= m*estatura + n

Lo realizaremos de la siguiente forma:

ftype=fittype({'x','1'},'coeff',{'m','n'})
[fresult,gof,output]=fit(estatura,peso,ftype)

pendiente=fresult.m;
ord_origen=fresult.n;

Podemos reprentar los puntos y la recta de ajuste:

figure(1);
hold on;
plot(estatura,peso,'b*');
peso_fit=pendiente.*estatura+ord_origen;
plot(estatura,peso_fit,'r-');

[Matlab] --> Como extraer un vector dentro de otro

Para extraer un subvector contenido en otro que cumpla una serie de condiciones se puede usar la lógica convencional.

Por ejemplo, disponemos de un vector con el nombre edad con los siguientes valores:

edad=[12 25 32 45 83 8 30 86 63]

Para extraer los valores menores de 18 años se puede conseguir de la siguiente forma:

menores=edad(edad<=18) menores devuelve los valores:

menores=

12 8