miércoles, 14 de abril de 2021

Hablitar administrador en windows

en línea de comandos colocas:

user administrator /active yes

Comando para información de sistema e inicio de programas en windows

Ingresa a Windows, ve a ejecutar y coloca:

msinfo32



Ingresa a Windows, ve a ejecutar y coloca:

Shell:StartUp


¿Dónde se guardan las conversaciones de WhatsApp?

En WhatsApp tienes distintas opciones para guardar el historial de chats, aunque quizás no sepas cual es su ubicación y dónde puedes encontrarlas. Por eso hoy te vamos a mostrar dónde se guardan las conversaciones de WhatsApp.

Aunque si escoges la opción de copia en Google Drive se guardan en la nube, también se queda otra copia almacenada en el teléfono dentro de unas carpetas junto con otro tipo de archivos del propio WhatsApp, como puedes ser las fotos, los audios, etc.

Accede mediante un administrador de archivos
Para acceder a las conversaciones de WhatsApp guardadas en el teléfono debes tener un administrador de archivos instalado, como por ejemplo ES Explorador de archivos, uno de los más conocidos y utilizados.

Cómo saber si tenemos WhatsApp Web abierto en otro ordenador
Una vez instalado accede y haz lo siguiente:

Busca la ruta /sdcard/WhatsApp/Databases o similar.
El archivo o archivos concretos de las conversaciones de nuestro WhatsApp son los que tienen el nombre de "msgstore-AAAA-MM-DD.1.db.crypt12" o similar. Como podrás ver hay varios y es que WhatsApp guarda una copia todos los días durante 7 días.
Imagen - ¿Dónde se guardan las conversaciones de WhatsApp?
Por tanto esos son los archivos que debes guardar cuando no quieras perder tus conversaciones de WhatsApp o incluso cuando las quieras llevar a un teléfono nuevo. De todas formas ahora todo es mucho más sencillo con las copias en Drive porque no tienes que estar copiando nada.

Recuerda que las conversaciones no son lo único que puedes recuperar o consultar ya que puedes acceder en cualquier momento a las fotos, vídeos y hasta GIFS que te envían a ti y que también has enviado a otros contactos.

Ya conoces la ruta donde se guardan las conversaciones de WhatsApp, algo que te será de suma utilidad en un futuro cuando necesites recuperar alguna de ellas por si cambias de teléfono, aunque con la copia en Drive ya eso es prácticamente innecesario.

sábado, 22 de diciembre de 2018

Inciar Programas en windows 8

Carpeta Inicio

La forma más sencilla de ejecutar programas de inicio en Windows ha sido siempre la de la clásica carpeta de Inicio o Startup que contenía el menú de Inicio. En dos versiones, una para usuarios específicos y otra que afectaba al sistema en general, se trata de un clásico que parece haber desaparecido pero que sigue ahí. Para acceder a la carpeta debemos hacer lo siguiente:
  • Abrir el dialogo Ejecutar (Windows + R)
  • Introducir el texto shell:Startup
  • Introducir el texto shell:Common Startup
Automáticamente estaremos en la carpeta de Inicio para nuestro usuario (primera opción) o para todos los usuarios (segunda opción, Common Startup). Utilizar la carpeta es exactamente igual que en versiones anteriores del sistema: Basta con crear accesos directos a los programas que queremos que se ejecuten en el inicio.

jueves, 1 de agosto de 2013

Borrado de Archivos en C# y VB, lectura de ruta con filestream

public void BorrarArchivos(string rutaSvr)
        {

            System.IO.DirectoryInfo rutaCarpeta = new DirectoryInfo(rutaSvr);

            foreach (FileInfo file in rutaCarpeta.GetFiles())
            {
                file.Delete();
            }
            //foreach (DirectoryInfo dir in rutaCarpeta.GetDirectories())
            //{
            //    dir.Delete(true);
            //}


        }  



-------------------------------------------------------------------------

 Public Function BorrarArchivos(ByVal rutaSvr As String) As Boolean Implements IRecibosWeb.BorrarArchivos


            Try


                Dim ObjCarpeta As Object
                Dim Carpeta As Object

                ObjCarpeta = CreateObject("Scripting.FileSystemObject")
                Carpeta = ObjCarpeta.GetFolder(rutaSvr)


                If Carpeta.Files.Count = 0 Then


                Else

                    ' File.Delete(rutaSvr)

                    rutaSvr = rutaSvr & "*.*"

                    Kill(rutaSvr)

                End If

                ObjCarpeta = Nothing
                Carpeta = Nothing

            Catch ex As Exception
                'Throw ex
                _error = Convert.ToString(ex).ToString()


            Finally

                'If data.IsConnectionOpen() Then
                '    data.CloseConnection()
                'End If

            End Try
            'Return functionReturnValue


        End Function
-------------------------------------------------------------------------------------------------------
 Public Function GetStreamFile(ByVal filePath As String) As Stream

            Using fileStream As FileStream = File.OpenRead(filePath)
                Dim memStream As New MemoryStream()
                memStream.SetLength(fileStream.Length)
                fileStream.Read(memStream.GetBuffer(), 0, CInt(fileStream.Length))

                Return memStream
            End Using
        End Function


public Stream GetStreamFile(string filePath)
    {
        using (FileStream fileStream = File.OpenRead(filePath))
        {
            MemoryStream memStream = new MemoryStream();
            memStream.SetLength(fileStream.Length);
            fileStream.Read(memStream.GetBuffer(), 0, (int)fileStream.Length);

            return memStream;
        }
    }

jueves, 18 de julio de 2013

SessionTimeout javascript

    <script type="text/javascript">
        var _sessionTimeout = 0;
        var _timerID;


        function DisplaySessionTimeout(setTimer) {

            //if session is not less than 0
            if (_sessionTimeout >= 0) {
                //call the function again after 1 minute delay
                if (setTimer) {
                    _timerID = window.setTimeout("DisplaySessionTimeout('true')", 60000);
                    if (_sessionTimeout == 0)
                        document.getElementById("dvTiempoOperacion").innerHTML = " menos de un minuto ";
                    else {
                        if (document.getElementById("dvTiempoOperacion"))
                            document.getElementById("dvTiempoOperacion").innerHTML = " " + (_sessionTimeout) + " minutos";
                    }

                }
                else {
                    window.status = "Listo."
                    _sessionTimeout = 5;
                }
            }
            else {
                alert("Estimado Usuario:\r\nSu pago NO fue realizado.\r\nEl tiempo para realizar la operación ha finalizado.\r\nSe redireccionará a la pagina inicial para intentar nuevamente.");
                window.location = document.getElementById("ctl00_ContentPlaceHolder1_hURL").value;
            }
            //assigning minutes left to session timeout to Label
            _sessionTimeout = _sessionTimeout - 1;
        }

        function botonContinuar_onclick() {
            UpdatePanel1.update();
        }



        function my_onkeydown_handler() {
            switch (event.keyCode) {
                case 116: // 'F5'
                    event.returnValue = false;
                    event.keyCode = 0;
                    window.status = "Tecla F5 deshabilitada.";
                    break;
            }
        }


        function openBrWindow(theURL, winName, features) {
            window.open(theURL, winName, features);
        }


        function isanumber(s) {
            if ((s == '') || (s == '\t') || (s == '\n')) return false;
            for (var i = 0; i < s.length; i++) {
                var c = s.charAt(i);
                var n = parseInt(c);
                if (isNaN(n)) return false;
            }
            return true;
        }


        function validStringToPayworks(parameterValue) {
            var validParameter = "";
            validParameter = parameterValue.toUpperCase();
            validParameter = validParameter.replace(/Ñ/g, 'N');
            validParameter = validParameter.replace(/Ü/g, 'U');
            validParameter = validParameter.replace(/Á/g, 'A');
            validParameter = validParameter.replace(/É/g, 'E');
            validParameter = validParameter.replace(/Í/g, 'I');
            validParameter = validParameter.replace(/Ó/g, 'O');
            validParameter = validParameter.replace(/Ú/g, 'U');
            return validParameter;
        }

        function Validar() {
            var form = document.forms[0];
            //document.forms[1].Expires.value = document.forma.month.value + "/" + document.forma.year.value;
            var NotEmpty_transaction_billToFirstName = "El nombre es requerido, validar con el comercio afiliado";
            var NotEmpty_transaction_concept = "El concepto es requerido, validar con el comercio afiliado";
            var NotEmpty_transaction_cvv2Val = "Capture el c\u00f3digo de validaci\u00f3n de la tarjeta de cr\u00e9dito";
            var NotEmpty_transaction_month = "Seleccione el mes de la fecha de vencimiento";
            var NotEmpty_transaction_number = "Capture el n\u00famero de la tarjeta de cr\u00e9dito";
            var NotEmpty_transaction_orderId = "La referencia es requerida, validar con el comercio afiliado";
            var NotEmpty_transaction_shipToFirstName = "Capture el titular de la tarjeta de cr\u00e9dito";
            var NotEmpty_transaction_year = "Seleccione el a\u00f1o de la fecha de vencimiento";
            var Digits_transaction_cvv2Val = "El c\u00f3digo de validaci\u00f3n de la tarjeta de cr\u00e9dito debe ser un valor num\u00e9rico";
            var Digits_transaction_number = "El n\u00famero de la tarjeta de cr\u00e9dito debe ser un valor num\u00e9rico de 16 d\u00edgitos";
            var Size_transaction_number = "El n\u00famero de la tarjeta de cr\u00e9dito debe tener una longitud de 16 d\u00edgitos";
            var NotEmpty_mail_or_sms = "Por favor capture al menos correo electr\u00f3nico y/o un numero celular para recibir la confirmaci\u00f3n de su pago.";
            var Valid_Email = "Por favor capture un correo electr\u00f3nico v\u00e1lido.";
            var Size_sms_number = "El n\u00famero del celular debe tener una longitud de 10 d\u00edgitos";

            var lang = "null";
            if (lang == "en") {
                NotEmpty_transaction_billToFirstName = "Name is required, verify with affiliated commerce";
                NotEmpty_transaction_concept = "Concept is required, verify with affiliated commerce";
                NotEmpty_transaction_cvv2Val = "Enter card verification value";
                NotEmpty_transaction_month = "Select expiration month";
                NotEmpty_transaction_number = "Enter credit card number";
                NotEmpty_transaction_orderId = "Transaction is required, verify with affiliated commerce";
                NotEmpty_transaction_shipToFirstName = "Enter credit cardholder's name";
                NotEmpty_transaction_year = "Select expiration year";
                Digits_transaction_cvv2Val = "Card verification value must be a numeric value";
                Digits_transaction_number = "Credit card number must be a 16 digit numeric value";
                Size_transaction_number = "Credit card number must be 16 digit length";
            }


            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtTarjetaAbiente'].value == "") {
                alert(NotEmpty_transaction_shipToFirstName);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtTarjetaAbiente'].focus();
                return false;
            }

            document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtTarjetaAbiente'].value = validStringToPayworks(document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtTarjetaAbiente'].value);

            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_3'].value == "") {
                alert(NotEmpty_transaction_number);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_3'].focus();
                return false;
            }

            if (!isanumber(document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_3'].value)) {
                alert(Digits_transaction_number);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_3'].focus();
                return false;
            }

            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_3'].value.length < 16) {
                alert(Size_transaction_number);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_3'].focus();
                return false;
            }

            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_month'].options[document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_month'].selectedIndex].value == "0") {
                alert(NotEmpty_transaction_month);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_month'].focus();
                return false;
            }

            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_year'].options[document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_year'].selectedIndex].value == "0") {
                alert(NotEmpty_transaction_year);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_year'].focus();
                return false;
            }

            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_5'].value == "") {
                alert(NotEmpty_transaction_cvv2Val);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_5'].focus();
                return false;
            }


            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtCorreoElectronico'].value == "" && document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtNumeroSMS'].value == "") {
                alert(NotEmpty_mail_or_sms);

                if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtCorreoElectronico'].value == "")
                    document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtCorreoElectronico'].focus();
                else
                    document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtNumeroSMS'].focus();

                return false;
            }

            if (!validateEmail(document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtCorreoElectronico'].value) && document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtCorreoElectronico'].value != "") {
                alert(Valid_Email);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtCorreoElectronico'].focus();
                return false;
            }

            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtNumeroSMS'].value.length < 10 && document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtNumeroSMS'].value != "") {
                alert(Size_sms_number);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtNumeroSMS'].focus();
                return false;
            }

            if (!isanumber(document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_5'].value)) {
                alert(Digits_transaction_cvv2Val);
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_txtVal_5'].focus();
                return false;
            }
            return true;
        }

        function checkPlanType() {
            if (document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_ddlVal_19'].options[document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_ddlVal_19'].selectedIndex].value == "0") {
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_ddlVal_20'].display = none;
            }
            else {
                document.forms[0]['ctl00_ContentPlaceHolder1_dataPayment_ddlVal_20'].display = '';
            }
        }
        window.history.forward(1);
        document.attachEvent("onkeydown", my_onkeydown_handler);
    </script>

jueves, 11 de julio de 2013

Srcipt manager para mandar mensajes y ejecutar funciones javascript en asp

Este codigo es code-behind para ejecutar una funcion en el asp

ScriptManager.RegisterStartupScript(this, this.GetType(), "err_msg", "javascript:exportmasterfile();", true);

Este es codigo code-behind para mandar alertas

                                    Msg = "Seleccione su ruta para descargar el archivo,  POR FAVOR ";
                                    //ScriptManager.RegisterStartupScript(Me, Me.GetType(), "err_msg", "alert('" + Msg + "');", True)

martes, 2 de julio de 2013

Funcion javascript para abrir pagina html y cerrar la maestra


 window.showModalDialog("news.html", "argumentos", "dialogHeight: 280px; dialogWidth: 280px; dialogTop: 100px; dialogLeft: 100px; center: no; resizable: no; status: no;");


<script type="text/javascript">
function url() {
hidden = open('frmEnvioFact.aspx','NewWindow','center=50, top =50 , width=450,height=600,status=yes,resizable=no,scrollbars=no');

window.open("","_parent","");
var ventana = window.self;
ventana.opener = window.self;
ventana.close();
}

</script>
-------------------------------------------------------
<SCRIPT LANGUAGE="JavaScript">
function url() {
hidden = open('frmEnvioFact.aspx','NewWindow','center=50, top =50 , width=450,height=600,status=yes,resizable=yes,scrollbars=yes');
}
</SCRIPT>


<SCRIPT LANGUAGE="JavaScript">
function url() {
hidden = open('frmEnvioFact.aspx','NewWindow','center=50, top =50 , width=450,height=600,status=no,resizable=no,scrollbars=no');
}
</SCRIPT>

lunes, 22 de abril de 2013

Niveles de Acceso en Visual Basic

Niveles de Acceso en Visual Basic

El nivel de acceso de un elemento declarado es la extensión de la capacidad de acceso a él; es decir, qué código tiene permiso para leer o escribir en él. Está determinado no solamente por cómo se declara el propio elemento, sino también por la nivel de acceso del contenedor del elemento. El código que no puede tener acceso a un elemento contenedor no puede tener acceso a ninguno de sus elementos contenedores, incluso aquéllos declarados como Public. Por ejemplo, una variable Public de una estructura Private está accesible desde el interior de la clase que contiene la estructura, pero no desde el exterior.

Public

La palabra clave Public (Visual Basic)
de la instrucción de declaración especifica que los elementos son accesibles desde un código en cualquier parte del mismo proyecto, desde otros proyectos que hagan referencia al proyecto y desde un ensamblado generado a partir del proyecto. El código siguiente muestra un ejemplo de declaración Public.

Public Class classForEverybody

Puede utilizar Public
solamente en el nivel de módulo, interfaz o espacio de nombres. Esto es, puede declarar un elemento público en el nivel de archivo de código fuente o de nombre de espacio, o dentro de una interfaz, módulo, clase o estructura, pero no dentro de un procedimiento.
Protected

La palabra clave Protected (Visual Basic)
de la instrucción de declaración especifica que los elementos son accesibles solamente desde dentro de la misma clase o desde una clase derivada de ella. El código siguiente muestra un ejemplo de declaración Protected.

Protected Class classForMyHeirs

Sólo puede utilizar Protected
en el nivel de clase y sólo al declarar un miembro de una clase. Esto es, puede declarar un elemento protegido en una clase, pero no en el nivel de archivo de código fuente o de nombre de espacio, o dentro de una interfaz, módulo, estructura o procedimiento.
Friend

La palabra clave Friend (Visual Basic)
en la instrucción de declaración especifica que los elementos son accesibles desde dentro del mismo ensamblado, pero no desde fuera del ensamblado. El código siguiente muestra un ejemplo de declaración Friend.

Friend stringForThisProject As String

Puede utilizar Friend solamente
en el nivel de módulo, interfaz o espacio de nombres. Esto es, puede declarar un elemento de tipo amigo en el nivel de archivo de código fuente o de nombre de espacio, o dentro de una interfaz, módulo, clase o estructura, pero no dentro de un procedimiento.
Protected Friend

Las palabras clave Protected y Friend
especifican juntos en la instrucción de declaración que los elementos son accesibles desde las clases derivadas o desde dentro del mismo ensamblado o ambos. El código siguiente muestra un ejemplo de declaración Protected Friend.

Protected Friend stringForProjectAndHeirs As String

Sólo puede utilizar Protected Friend
en el nivel de clase y sólo al declarar un miembro de una clase. Esto es, puede declarar un elemento de tipo amigo protegido en una clase, pero no en el nivel de archivo de código fuente o de nombre de espacio, o dentro de una interfaz, módulo, estructura o procedimiento.
 

Private

La palabra clave Private (Visual Basic)
de la instrucción de declaración especifica que los elementos son accesibles solamente desde dentro del mismo módulo, clase o estructura. El código siguiente muestra un ejemplo de declaración Private.

Private numberForMeOnly As Integer

Sólo puede utilizar Private
en el nivel de módulo. Esto es, puede declarar un elemento privado dentro de un módulo, clase o estructura, pero no en el nivel de archivo de código fuente o de nombre de espacio, dentro de una interfaz o un procedimiento.

En el nivel de módulo, la instrucción Dim sin ninguna palabra clave de nivel de acceso es equivalente a una declaración Private. No obstante, podría convenirle usar la palabra clave Private para facilitar la lectura y la interpretación del código.















miércoles, 13 de julio de 2011

Video de como crear la red PERT de actividades indicadas con letras o nombres

GridView anidado en ASP .Net

En ocasiones, en nuestras aplicaciones web con ASP .Net necesitamos mostrar datos en una cuadricula pero agrupando algunos registros. Algo así como el típico caso de Maestro Detalle, pero el detalle dentro de la misma grilla. En ASP .Net esto se resuelve fácilmente con el control GridView, para obtener el resultado siguente:
GridView Anidado
El gráfico anterior muestra a un GridView que muestra los datos como maestro detalle. Ahora veremos como es posible hacer esto en una aplicación.
En el caso anterior, la grilla principal tiene 3 columnas, una para el Id. Cat., la segunda para la Categoría y la tercera, será un Template que contendrá otro GridView en su ItemTemplate, esa es la parte fácil; la parte más fácil se da en el evento RowDataBound del GridView principal, ya que este evento se ejecuta cada vez que se enlaza una fila del gridview a los datos que mostrará.
Ya en este evento lo que se debe hacer es simplemente crear una vista de la tabla de detalle filtrando los datos que necesitamos por el id de la tabla maestro. Para poder acceder al GridView que se encuentra en la tercera columnna de la grilla principal simplemente aplicamos una conversión del objeto en la coluna correspondiente, tal y como se muestra en la linea:
GridView gdv = (GridView)e.Row.Cells[2].FindControl(“gdvProductos”);
Hay que considerar que el evento RowDataBoundse ejecuta segun la cantidad de registros que se muestran en el GirdView es decir, si tu GridView tiene 10 filas, este evento se ejecutará 10 veces.
Y el título de las cabeceras? Pues eso es mas fácil aún, se trata de dibujar la tabla HTML dentro de las etiquetas HeaderTemplate de la tercera columna y listo!
Espero que les sea de utilidad.

Funciones de conversión de tipos

http://msdn.microsoft.com/es-es/library/s2dy91zy%28v=vs.80%29.aspx

martes, 12 de julio de 2011

Leer un archivo de texto mediante System.IO y Visual C# .NET

Leer archivos de texto en Visual C# .NET

La apertura y lectura de archivos para el acceso de lectura es una parte importante de la funcionalidad de entrada y salida (ES), incluso si no necesita escribir en el archivo en cuestión. En este ejemplo se abre un archivo para su lectura, lo que resulta útil para leer archivos de texto, pero que es inapropiado en el caso de archivos binarios. En este ejemplo se utiliza uno de los varios métodos disponibles para abrir el archivo. Aunque muchas de las estructuras de datos están disponibles para almacenar información que se recupera del archivo, la clase ArrayList es la estructura más fácil de utilizar. Para abrir y leer el archivo, en este ejemplo se utilizan objetos del espacio de nombres System.IO, en concreto la clase System.IO.StreamReader.

NOTA: en este ejemplo se requiere una forma determinada de archivo de texto (.txt) desde la que leer.

Para cargar y leer un archivo de texto desde Visual C# .NET, siga estos pasos:
  1. Abra Visual Studio .NET. Cree una nueva aplicación de consola en C#. Visual Studio crea una Clase estática y un procedimiento Main() vacío.
  2. Asegúrese de que el proyecto hace referencia al menos al espacio de nombres System. Utilice la instrucción using en los espacios de nombres System, System.IO y System.Collections de forma que no tenga que calificar las declaraciones de esos espacios de nombres más adelante en el código. Debe utilizar estas instrucciones antes que cualquier otra declaración.
    using System;
    using System.IO;
    using System.Collections;
  3. Para abrir un archivo y leerlo, cree una nueva instancia de un objeto StreamReader y pase la ruta del archivo en el constructor de la siguiente manera:
    StreamReader objReader = new StreamReader("c:\\test.txt");
  4. Necesitará una variable de cadena en la que almacenar cada una de las líneas del archivo a medida que avanza en el proceso. Puesto que agregará estas líneas a un objeto ArrayList, debe declarar y crear un objeto de este tipo también.
    string sLine="";
    ArrayList arrText = new ArrayList();
  5. Existen varios métodos para leer el archivo, incluido el método ReadToEnd que lee todo el archivo de una vez. Sin embargo, para este ejemplo, puede utilizar el método ReadLine para que las líneas del archivo se muestren de una en una. Al llegar al final del archivo, este método devuelve un valor nulo, lo que permite terminar el bucle. Mientras lee cada línea del archivo, puede utilizar el método Add de ArrayList para insertar las líneas en la clase ArrayList.
    while (sLine != null)
    {
     sLine = objReader.ReadLine();
     if (sLine != null)
      arrText.Add(sLine);
    }
    objReader.Close();
  6. Utilice un bucle For Each para escribir el contenido del objeto ArrayList recién relleno en la consola de la siguiente manera:
    foreach (string sOutput in arrText)
     Console.WriteLine(sOutput);
    Console.ReadLine();
  7. Guarde y ejecute el código, que genera un listado del archivo en la consola.
 

Lista completa de código

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
 /// <summary>
 /// Descripción de resumen para Class1.
 /// </summary>
 class Class1
 {
  static void Main(string[] args)
  {
   StreamReader objReader = new StreamReader("c:\\test.txt");
   string sLine="";
   ArrayList arrText = new ArrayList();

   while (sLine != null)
   {
    sLine = objReader.ReadLine();
    if (sLine != null)
     arrText.Add(sLine);
   }
                        objReader.Close();

   foreach (string sOutput in arrText)
    Console.WriteLine(sOutput);
   Console.ReadLine();
  }
 }
}
 

Errores

Debe prestar atención a varios elementos a la hora de trabajar con la E/S de archivos, entre ellos los siguientes:
  • Cada vez que tenga acceso a un archivo, existe la posibilidad de que el archivo que está intentando leer o en el que intenta escribir no se encuentre en el sistema o esté en uso.
  • En este ejemplo se inserta todo el archivo en la memoria antes de que ésta lo procese. Puede encontrarse con una situación en la que el archivo sea demasiado grande para guardarlo en memoria, o puede que no tenga permisos para obtener acceso al archivo.
Cualquiera de estas situaciones puede hacer que se provoque una excepción. Siempre es conveniente proporcionar un bucle try...catch para tratar estos problemas frecuentes.

Cómo agregar o restar la hora con un tipo de datos DateTime

En este artículo se describe cómo agregar o restar la hora con un campo DateTime. Tiempo en segundos, se puede agregar o restar con un campo de tipo de datos DateTime. Tiempo lleva a través de segundos minutos horas días a años. No hay ajustes en este ejemplo para un año bisiesto. Éste es un ejemplo y desea agregar funcionalidad adicional si los cálculos de tiempo son una gran parte de la aplicación.

Al agregar o restar la hora con un campo DateTime, se calcularán los valores par...

Al agregar o restar la hora con un campo DateTime, se calcularán los valores para sumar o restar con segundos.

Ejemplo para agregar una hora:
HourFromNow = Datetime() + 3600
    
- o bien -

Ejemplo restar una semana:
WeekAgo = Datetime() - (7*24*3600)
    

Problemas con acentos al leer ficheros texto C#

Al leer ficheros de texto cuando aparecen letras con acento o 'ñ' no me los
reconoce y los ignora,

como se puede corregir esto ??

En la instrucción que abre el fichero tienes que especificar el tipo de
codificación con el que está grabado, ya que las eñes y otros caracteres
especiales tienen distinto código dependiendo del juego de caracteres que se
use. Por ejemplo, si usas un StreamReader para leer el fichero:

StreamReader sr = new StreamReader(fichero,
System.Text.Encoding.GetEncoding(1252));
string contenido = sr.ReadToEnd();
sr.Close();

Aquí hemos usado el encoding 1252 que es el más habitual de Windows,
pero si tu fichero tiene otra codificación, por ejemplo, UTF-8, tendrás que
poner el Encoding que corresponda (System.Text.Encoding.UTF8).

Leer un fichero de texto en C# .NET reconociendo tildes (acentos) y otros signos especiales

Esto consiste en un proceso muy sencillo pero se nos puede complicar si somos algo novatos o venimos de Java y estamos acostumbrados a lo fácil.

Para empezar, C# .NET posee un mecanismo de lectura de ficheros de texto muy eficiente, siendo éste el siguiente:
// Método para procesar un fichero
public void procesarFichero()
{
// Definimos un StreamReader
StreamReader lector;
string linea = "";

try{
lector = File.OpenText(fichero);

// Lee linea a linea
while ( (linea = lector.ReadLine()) != null){
//hacemos lo que queramos
}
// Cerramos la conexion
lector.Close();
}
catch (Exception e){
System.Console.WriteLine("Problemas al cargar el fichero.{0}", e);
}
}

El problema viene si al llevar a cabo el proceso de lectura, podemos observar que los string resultado no incorporan caracteres especiales como por ejemplo las tildes y acentos de otro tipo.
La causa de este problema es que el descriptor que hemos utilizado anteriormente sólo reconoce ficheros con codificación UTF-8 (por defecto), por lo que la entrada debe estar codificada de este modo. ¿entonces, cómo podemos convertir nuestro fichero de texto de toda la vida a UTF-8?
Pues muy sencillo: tomamos un editor básico de texto (bloc de notas de windows o similares), abrimos nuestro fichero, seleccionamos la opción de guardar como... y en el campo referente a codificación seleccionaremos utf-8

----------------
StreamReader Lector = new StreamReader(DireccionDeArchivo, Encoding.Default);

Validando los TextBox (Solo letras) y (Solo Números)

Este código nos muestra como validar el TextBox1 para que acepte solo letras y como validar el TextBox2 para que acepte solo números.

En Visual Studio .NET abra un nuevo proyecto de VisualBasic .NET
Seleccionando la plantilla de Aplicación para Windows

En el Form1 que se crea automáticamente agregue dos TextBox
No les cambie el nombre Deben de quedar como TextBox1 y TextBox2
Luego valla al código del Form1 y agregue las siguientes líneas:


  Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As _ System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf e.KeyChar.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf e.KeyChar.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As _ System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
        If e.KeyChar.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf e.KeyChar.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub

 
 
Listo ahora puede ejecutar su proyecto con F5 y probar la aplicación.
NOTA:
Si desea que en el TextBox1 aparezcan las letras solo en MAYUSCULAS o minúsculas solo
tiene que cambiar la propiedad CharacterCasing del TextBox1


Me.TextBox1.CharacterCasing = CharacterCasing.Upper 'para MAYUSCULASMe.TextBox1.CharacterCasing = CharacterCasing.Lower 'para minúsculas
o
Me.TextBox1.CharacterCasing = CharacterCasing.Normal

limpiar un gridview

Coloca esto al final de tu codigo , donde quieras limpiar el grid y listo

gridview.databind()

Link extraer informacion desde txt y excel

http://social.msdn.microsoft.com/Forums/es-es/netfxwebes/thread/eddc36d7-9ce0-4e64-bd52-a1ba09a50c7f

Como extraer datos de excel a visual basic y viceversa

Podemos usar un control Dirlistbox para ubicar el archivo Excel.
Dim Libxl As Object
Dim Archw As String
Dim Hojaw As String
Hojaw = "Hoja1"
Archw = File1
Set Libxl = GetObject(Dir1.Path & "\" & Archw)
'Libxl.Application.Visible = True
Libxl.Application.Windows(Archw).Activate
Libxl.Application.Sheets(Hojaw).Activate
' Aquí movemos de Excel a formulario
' Fila 1 col 3 o sea celda C1
Text1 = Libxl.Application.Cells(1, 3)
' Para mover al libro
Libxl.Application.Cells(45, 9).Value = Text1
Libxl.Application.Save
Set Libxl = Nothing

Suerte !

convertir de texto a numero VB

Con Val(String) puedes transformar el string en entero, ten cuidado de verificar el string.

Controles de validacion Web

Hay seis controles Web para la validación de datos de entrada que se pueden incorporar en un Formulario Web.
RequiredFieldValidator: Facilita la validación de un dato del formulario chequeando que el mismo tenga algún valor.
RangeValidator: Facilita la validación de un dato del formulario contra un valor mínimo y máximo.
CompareValidator: Facilita la validación de un dato del formulario contra un valor fijo u otro campo del formulario.
CustomValidator: Facilita la validación de un dato del formulario usando una subrutina propia.
RegularExpressionValidator: Facilita la validación de un dato del formulario contra una expresión.
ValidationSumary: Agrupa los mensajes de error de otros controles en una parte de la página.
Todos los controles de validación tienen tres propiedades fundamentales: ControlToValidate, Text y IsValid. Todos los controles derivan de la clase BaseValidator.
La propiedad ControlToValidate contiene la referencia del control del formulario que queremos validar.
La propiedad Text almacena el mensaje de error que queremos que se muestre en la página.
Por último la propiedad IsValid almacena True en caso que el control pase el test de validación.
Cuando empleamos controles de validación con el Explorer 4.0 o superior, los controles automáticamente usan funciones en JavaScript en el cliente. Esto significa que los controles pueden inmediatamente mostrar los mensajes de error en el browser mientras el usuario está completando el formulario. Si hay algún error en la página el código JavaScript previene que el usuario pueda enviar los datos al servidor.
En caso de emplear navegadores más antiguos los controles que veremos seguirán funcionando, pero la validación se realizará en el servidor.

Controles de validación

Control: RequiredFieldValidator

Para probar este control haremos una página que solicite el nombre de usuario (mostraremos un error si el operador no ingresa texto en el TextBox)
La interface visual es la siguiente:

El mensaje en rojo debe aparecer si presionamos el botón “Confirmar” y no se ingresó texto en el TextBox.
En el Visual Studio .Net confeccionamos el formulario web disponiendo uno control de tipo TextBox, un Button y un RequiredFieldValidator que se encuentra en la pestaña “Validación” del “Cuadro de herramientas”.
El control RequiredFieldValidator es importante inicializar las siguientes propiedades:

Cuando ejecutemos la página podemos ver el código que llega al navegador (en ella veremos las funciones en JavaScript que automáticamente el ASP.NET nos crea para facilitar la validación)
El código HTML completo de la página es el siguiente:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        Ingrese nombre de usuario:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
        ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator">Debe ingresar el 
nombre de usuario.</asp:RequiredFieldValidator>
        <br />
        <asp:Button ID="Button1" runat="server" Text="Confirmar" />
    
    </div>
    </form>
</body>
</html>
Como sabemos este código HTML se genera en forma automática cuando creamos cada control y configuramos sus propiedades.
Luego si queremos que al presionar el botón se redireccione a otra página en caso de haber ingresado un nombre de usuario debemos codificar el método Clic para dicho botón:
Partial Class _Default
    Inherits System.Web.UI.Page

   Protected Sub Button1_Click(ByVal sender As Object, _   
     ByVal e As System.EventArgs) Handles Button1.Click
     
     If Me.IsValid Then
            Me.Response.Redirect("Default2.aspx")
     End If
  
 End Sub
End Class
La propiedad IsValid del WebForm almacena true si todos los controles de validación dispuestos en el formulario se validan correctamente. Es decir en este problemas si se ingresa algún caracter en el control TextBox luego se puede pasar a la página “Default2.aspx”.

Control: RangeValidator

El control RangeValidator especifica un valor mínimo y máximo para un control TextBox. Podemos utilizar el control para chequear el rango de enteros, fechas, cadenas o valores reales.
Las propiedades más importantes del control son:
· ControlToValidate El campo del formulario a validar.
· MinimumValue El valor mínimo a validar en el rango de valores.
· MaximumValue El valor máximo a validar en el rango de valores.
· Text El mensaje de error a mostrar.
· Type El tipo de comparación a ejecutar (valores posibles: String, Integer, Double, Date, Currency)
Para probar este control haremos una página que solicite ingresar la edad de una persona que se postula para un trabajo (la misma debe estar en el rango de 18 a 35 años)
Disponemos sobre el formulario los siguientes objetos: Label, TextBox, Button y un RangeValidator. La interface que debemos implementar es la siguiente:
El objeto RangeValidator lo debemos configurar con los siguientes valores:

Si ejecutamos la página veremos que el mensaje aparece si ingresamos una edad que esté fuera del rango de 18 a 35 años.
El código a implementar al presionar el botón confirmar es el siguiente:
Partial Class Default2
    Inherits System.Web.UI.Page

   Protected Sub Button1_Click(ByVal sender As Object, _ 
     ByVal e As System.EventArgs) Handles Button1.Click
   
     If Me.IsValid Then
            Me.Response.Redirect("Default3.aspx")
     End If

   End Sub
End Class
Es decir redireccionamos a la próxima página en caso que todos los controles de validación del formulario se verifiquen correctos (en este problema solo tenemos un control de tipo RangeValidator, pero en muchos casos veremos que en un formulario puede haber más de un control de validación)
Si quisiéramos solo validar un control determinado del WebForm la condición sería:
If Me.RangeValidator1.IsValid Then
    Me.Response.Redirect("Default3.aspx")
End If
Es decir verificamos la propiedad IsValid del control RangeValidator (si tenemos un solo control en el formulario preguntar por la propiedad IsValid del webform o del RangeValidator el resultado será idéntico)

Control: CompareValidator

El control CompareValidator permite comparar un valor de un control con otro control o comparar el valor de un control con un valor fijo.
Las propiedades más importantes son:
· ControlToValidate El campo del formulario a validar.
· ControlToCompare El campo del formulario contra el cual se efectúa la comparación.
· Operator El operador a utilizarse en la comparación (los valores posibles son Equal, NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual y DataTypeCheck)
· Text El mensaje de error a mostrar.
· Type El tipo de comparación a ejecutar (valores posibles String, Integer, Double, Date, Currency)
· ValueToCompare El valor fijo a comparar.
Para probar este control implementaremos una página que realizaría el alta de la tabla usuarios (debe permitir el ingreso del nombre de usuario y su clave, esta última dos veces, con el objetivo de asegurarse que la ingresó correctamente), emplearemos un objeto de la clase CompareValidator para validar el ingreso repetido de la clave.
La interface visual de la página es:

Al objeto CompareValidator le configuramos las propiedades de la siguiente manera:

Es importante inicializar la propiedad ControlToValidate con el objeto TextBox que carga la segunda clave, luego que el operador carga la clave se procede a validar si el texto ingresado coincide en el TextBox que hemos inicializado la propiedad ControlToCompare.
El código a implementar al presionar el botón “Confirmar”:
Partial Class Default3
    Inherits System.Web.UI.Page

   Protected Sub Button1_Click(ByVal sender As Object, _ 
    ByVal e As System.EventArgs) Handles Button1.Click
       If Me.IsValid Then
           Me.Response.Redirect("Default4.aspx")
       End If
    End Sub
End Class

Control: CustomValidator

El control CustomValidator permite validar el campo de un formulario con una función de validación propia. Debemos asociar nuestro control CustomValidator con un evento propio.
Para probar este control implementaremos una página que solicite el ingreso de un número múltiplo de 5, en caso de ingresar un valor incorrecto mostraremos un mensaje de error.
La interface a implementar es la siguiente:

Primero configuramos las propiedades del objeto CustomValidator con:

Ahora debemos codificar el evento ServerValidate que tiene el objeto CustomValidator1, a esto lo hacemos desde la ventana de código y lo podemos generar automáticamente haciendo doble clic sobre el control en la ventana de diseño:
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As _ 
 System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
       
      Dim valor As Integer = args.Value
      If valor Mod 5 = 0 Then
         args.IsValid = True
      Else
         args.IsValid = False
      End If

End Sub
El parámetro args tiene dos propiedades fundamentales, una almacena el valor del control que estamos validando y otra llamada IsValid que debemos asignarle el resultado de nuestra validación.
En nuestro ejemplo almacenamos el número ingresado en la variable valor, luego mediante el operador Mod (resto de una división) verificamos si es cero, en caso afirmativo inicializamos la propiedad IsValid del objeto args con el valor True, en caso contrario, es decir que el número ingresado no sea un múltiplo de 5 almacenamos el valor False.
Cuando se presiona el botón confirmar tenemos:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Me.IsValid Then
            Me.Response.Redirect("Default5.aspx")
        End If
  End Sub

Control: RegularExpressionValidator

El control RegularExpressionValidator permite validar el valor de un campo de un formulario con un patrón específico, por ejemplo un código postal, un número telefónico, una dirección de mail, una URL etc.
El planteo de un RegularExpression es bastante compleja, pero el Visual Studio .Net provee una serie de expresiones regulares preconfiguradas.
Para probar este control, haremos una página que solicite el ingreso de un mail y mostraremos un error en caso que el usuario ingrese un mail mal formado.
La interface visual de la página es la siguiente:

Al objeto de la clase RegularExpressionValidator le configuramos las propiedades con los siguientes valores:

Si ejecutamos el programa podremos ver que al abandonar el foco del TextBox aparecerá el mensaje de error en caso de ingresar un mail incorrecto:
Partial Class Default5
    Inherits System.Web.UI.Page
 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
       If Me.IsValid Then
           Me.Response.Redirect("Default6.aspx")
       End If
 End Sub
End Class

Control: ValidationSummary

Cuando tenemos formularios con gran cantidad de controles puede llegar a ser dificultoso ubicar los errores en la página. El Framework de la .Net trae otra clase llamada ValidationSumary que muestra todos los errores de la página agrupados en una parte de pantalla. Para utilizar el control ValidationSummary es necesario fijar el valor de la propiedad ErrorMessage para cada control de validación que tiene la página. Es importante no confundir la propiedad Text que aparece en la misma posición donde la disponemos con la propiedad ErrorMesage que contiene el mensaje de error que mostrará el control ValidationSummary.
Para probar este control haremos una página que solicite la carga del nombre de usuario y su clave en forma obligatoria (mostrando un mensaje de error en caso de dejar vacío los TextBox)
La interface de la página es la siguiente:

Debemos disponer los siguientes objetos sobre el formulario:
1 Button, 2 TextBox, 2 RequiredFieldValidator y un objeto de la clase ValidationSummary.
La propiedad text de los objetos RequiredFieldValidator las inicializamos con un (*) asterisco y las propiedades ErrorMessage con las cadenas: “Debe ingresar el nombre de usuario” y “Debe ingresar la clave” respectivamente. En cuanto al objeto de la clase ValidationSummary no debemos hacer ninguna configuración especifica, solo ubicarlo dentro de la página.

Link para leer texto de un archivo

http://msdn.microsoft.com/es-es/library/db5x7c0d%28v=VS.80%29.aspx

Cadena de conexión para conectar a una base de SQL Server

La cadena de conexión

La cadena de conexión puede ser de dos formas distintas, según se indique la autenticación de Windows o la de SQL Server.
En la primera no hay que indicar ni usuario ni password, en la segunda si que hay que indicar esos dos datos.
Las bases de datos de SQL Server a las que podemos acceder con esa cadena de conexión pueden ser de cualquier versión, al menos yo lo he probado con las versiones 7.0, 2000 y 2005, en los tres casos usando ADO.NET.
En los siguientes ejemplos usaremos ciertos valores que tendrás que indicar según tus preferencias, me refiero al nombre del servidor de SQL Server y a la base de datos a la que quieres acceder, además del nombre del usuario o la contraseña.
En esos casos estarán indicados con letra en negrita y cursiva, el resto es texto "fijo" y que siempre podrás usar.


Cadena de conexión con autenticación de Windows
Para conectar a una base de datos de SQL Server con autenticación de Windows, la cadena de conexión será:
Data Source = ServidorSQL; Initial Catalog = BaseDatos; Integrated Security = True

Cadena de conexión con autenticación de SQL Server

Para conectar a una base de datos de SQL Server usando autenticación del propio SQL Server, la cadena de conexión será:
data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña

Indicar una base de datos que está en un servidor "remoto"

Para acceder a una base de datos que está en un servidor remoto, es decir en otro equipo, debemos usar cualquiera de las dos cadenas de conexión que hemos visto antes, aunque lo normal será que se use la segunda en la que se indica el nombre del usuario y la contraseña.
Esto se suele usar cuando estamos en una página Web o bien si queremos acceder desde una aplicación de escritorio (Windows.Forms), pero la base de datos no está en nuestro equipo.
El código podría ser el siguiente, y puedes usar una dirección IP o el nombre de un dominio (DNS) para indicar el nombre del servidor de SQL Server:
data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña


Conectar usando código de ADO.NET

Lo habitual es que usemos dos tipos de "conexiones", una usando un objeto DataAdapter y la otra usando un objeto Connection. Esta última es la que debemos usar si el acceso lo haremos por medio de un objeto Command en lugar del DataAdapter, por ejemplo para acceder a un procedimiento almacenado.
Pero para mantener el ejemplo simple, solo mostraré cómo conectar usando el SqlDataAdapter en el que usaremos un objeto DataTable para traer los datos, y esos datos los mostraremos en un DataGrid o un GridView como es el caso del código mostrado.
Este mismo código será válido tanto para una aplicación de Windows o una página Web.

Conectar usando un objeto SqlDataAdapter

Cuando usamos un DataAdapter no necesitamos usar un objeto del tipo SqlCommand, ya que el adaptador se encarga de todo.
El código para Visual Basic y C# sería el siguiente:

Imports System.Data
Imports System.Data.SqlClient
Dim sCnn As String
sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña"
Dim sSel As String = "SELECT * FROM NombreTabla"
Dim da As SqlDataAdapter
Dim dt As New DataTable
Try
    da = New SqlDataAdapter(sSel, sCnn)
    da.Fill(dt)
    Me.GridView1.DataSource = dt
    Me.GridView1.DataBind()
    LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count)
    
Catch ex As Exception
    LabelInfo.Text = "Error: " & ex.Message
    
End Try

using System.Data;
using System.Data.SqlClient;
string sCnn; 
sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña";
string sSel = "SELECT * FROM NombreTabla";
SqlDataAdapter da;
DataTable dt = new DataTable();
try
{
    da = new SqlDataAdapter(sSel, sCnn);
    da.Fill(dt);
 
    this.GridView1.DataSource = dt;
    this.GridView1.DataBind();
    LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count);
}
catch(Exception ex)
{
    LabelInfo.Text = "Error: " + ex.Message;
}

Link Convertir una cadena en una matriz de caracteres en Visual Basic(MSDN)

http://msdn.microsoft.com/es-es/library/ms233830%28VS.80%29.aspx

Abrir archivos de excel-visual basic

Solo tendrian que retocar el codigo poniendoles el nombre para que los abra directamente.

solo hace falta un boton en el form

esto va en el option explicit

Dim HojaExcel As Excel.Worksheet
' Private HojaExcel As Excel.Worksheet
Dim LibroExcel As New Workbook

esto va en el boton

Dim NombreHoja As String
On Error GoTo RutinaError

NombreHoja:
NombreHoja = InputBox("Nombre de la Hoja")
If NombreHoja = "" Then Exit Sub ' Se pulso CANCELAR

' Buscamos la hoja en el directorio de la aplicacion
Set HojaExcel = GetObject(App.Path & "\" & NombreHoja)
HojaExcel.Application.Visible = True
' Activar la ventana que contiene la hoja de calculo
HojaExcel.Application.Windows(NombreHoja).Activate
Exit Sub

RutinaError:
MsgBox Err.Description
If Err = 432 Then Resume NombreHoja

Cómo leer archivos planos con ADO.NET

Leyendo un archivo CSV
Por ejemplo, imagina que eres achichincle del Jason (el de las películas de terror) y te manda a hacer sus compras, de lo contrario terminarás con tu cabeza y cuerpo en diferentes sectores de la ciudad. El vato hace su "chopin list" en Excel y lo guarda en el siguiente archivo llamado jason.csv:
Producto,Cantidad,Precio
Sierra eléctrica,1,250
Máscara de hockey,1,15.50
Machete,5,2.70
Detergente para ropa (con quita-manchas),1,10
Delantal,2,7.25
Afilador,3,5

Entonces, como buen dotnetero, podrías leerlo con una rutina como esta:
// asumiendo que tenemos
// using System.Data.OleDb;
// using System.Data;
// en este connection string:
//     HDR=Yes       : indica que el primer registro contiene los encabezados 
//                     (nombres) de las columnas, no datos.
//     FMT=Delimited : indica que el los campos están delimitados por un caracter
//                     (coma por default).
string connectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DirectorioDeArchivosCSV;" +
"Extended Properties='text;HDR=Yes;FMT=Delimited'";
DataTable dt = new DataTable("miTabla");
using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM jason.csv", conn))
{
da.Fill(dt);
}
// hacer algo con los datos en el DataTable

El código es bastante sencillo, es el patrón estándar para usar un DataAdapter. Lo único de especial que tiene es que utiliza el OLEDB Data Provider, y que en el connection string le especificamos el directorio donde se encuentra el archivo, así como el formato que tiene. Nota que emites un SELECT de SQL común y corriente, por lo cual podrías agregar una cláusula WHERE si así lo quisieras.
En fin, para comprobar que en realidad funcionara el código, puse un breakpoint e invoqué el DataSet Visualizer desde Visual Studio. El resultado:
Pero, ¿qué tan inteligente es el OLEDB Provider? ¿Adivinó correctamente el tipo de mis datos?
Leyendo un archivo de texto con posiciones fijas
Ahora, asume que el méndigo Jason te la puso más difícil y en lugar de darte un archivo CSV, te da un archivo de texto sencillo como este (jason.txt):
El código sería muy similar al anterior:
// asumiendo que tenemos
// using System.Data.OleDb;
// using System.Data;
// en este connection string:
//     HDR=Yes   : indica que el primer registro contiene los encabezados 
//                 (nombres) de las columnas, no datos.
//     FMT=Fixed : indica que el los campos están en posiciones fijas y el tamaño
//                 de cada campo se especifican con un archivo SCHEMA.INI
//                 en el mismo directorio donde está el archivo a leer.
string connectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DirectorioDeArchivosTXT;" +
"Extended Properties='text;HDR=Yes;FMT=Fixed'";
DataTable dt = new DataTable("miTabla");
using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM jason.txt", conn))
{
da.Fill(dt);
}
// hacer algo con los datos en el DataTable

De hecho, lo único que cambió fue el parámetro FMT en el connectionString, el nombre del archivo y el directorio donde localizarlo. Sin embargo, para que esto funcione con archivos de posiciones fijas es necesario un paso adicional: especificar el tamaño (y tipo) de las columnas en el archivo.
Esto se hace mediante un archivo schema.ini que debe estar en el mismo directorio que el archivo que vas a leer. Consulta esta página para saber todas las opciones disponibles. En nuestro caso un archivo como el siguiente sería suficiente:
[jason.txt]
Format=FixedLength
Col1=Producto Char Width 40
Col2=Cantidad Long Width 10
Col3=Precio Double Width 10

Factorizando código
Si generalizamos el código un poco, podemos extraer una función sencilla que pueda ser reutilizada en varios de nuestros programas. Esa rutina podría ser como esta, en donde le pasas como parámetros el tipo y archivo a leer y te regresa un DataTable poblado ya con los datos:
// asumiendo que tenemos 
// using System.Data.OleDb;
// using System.Data;
// using System.IO;
public enum TipoDeArchivoPlano { Delimited, Fixed }
public static DataTable LeerArchivoPlano(
FileInfo archivo, bool tieneEncabezado, TipoDeArchivoPlano tipoDeArchivo )
{
if (!archivo.Exists)
throw new FileNotFoundException(
"No se encontró el archivo especificado");
string conEncabezado = tieneEncabezado ? "YES" : "NO";
string connectionString = String.Format(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" +
"Extended Properties='text;HDR={1};FMT={2}'",
archivo.DirectoryName, conEncabezado, tipoDeArchivo.ToString());
DataTable dt = new DataTable("miTabla");
using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbDataAdapter da =
new OleDbDataAdapter("SELECT * FROM " + archivo.Name, conn))
{
da.Fill(dt);
}
return dt;
}

De manera que pueda ser llamado así:
DataTable dt = LeerArchivoPlano(
new FileInfo(@"C:\DirectorioDeArchivosCSV\jason.csv"),
true, TipoDeArchivoPlano.Delimited);