sábado, 4 de enero de 2014

7.Ballon Tip o balón de información


Buena sin duda esta función durante mucho tiempo fue una de las que más me intereso pero nunca pude saber como hacerla tal vez fue por falta de información sobre esta, pero ahora ya la puedo hacer y hablo del Balloon Tip (de ahora en adelante balón de información) es ese valoncito de información que vemos que sale del icono de dispositivos USB cuando conectamos una memoria o algo por el estilo, solo que esta vez lo aremos desde el icono de sistemas de nuestra aplicación


Me.NotifyIcon1.ShowBalloonTip(500, "Ubunto""Ubunto no esta listo", ToolTipIcon.Error)

Suponiendo que tengas una aplicación con un nombre (X), en este caso usaremos el nombre Ubunto como un ejemplo, el anterior código nos daría esto:
No hará falta recordar que para esto debemos declarar ciertos objetos como lo son el NotifiIcon1 y si ya le tienes un nombre predeterminado declarado igual servirá solo edita el nombre en el código e igual funcionara.

Para cerrar el fragmento de código vemos esta línea: “ToolTipIcon.Error)”, observe que esta es una línea en donde le declaramos al programa el tipo de información que le mostramos, el principio es el mismo que en el Msgbox en donde se muestran errores, información, exclamación, etc. Será suficiente con la eliminación de la palabra error para que Visual Basic que muestre la gama de opciones que puedes usar n esta sección, siga leyendo para ver más ejemplos.

Ejemplos:

Información

Me.NotifyIcon1.ShowBalloonTip(500, "Ubunto", "Ubunto esta listo para iniciar", ToolTipIcon.Info)


Advertencia

Me.NotifyIcon1.ShowBalloonTip(500, "Ubunto", "MMM... ya no se me ocurre nada!", ToolTipIcon.Warning)

Búsqueda Secuencial

La búsqueda secuencial es una de las Estructuras de datos mas simples que hay, que consiste en buscar el elemento buscado secuencialmente, como su nombre lo dice, es decir que lo busca uno por uno hasta que lo encuentra

Ejemplo:

public  int busquedaSecuencial(int []arreglo,int dato){
               int posicion = -1;
               for(int i = 0; i < arreglo.length; i++){//recorremos todo el arreglo
                   if(arreglo[i] == dato){//comparamos el elemento en el arreglo con el buscado
                    posicion = i;//Si es verdadero guardamos la posicion
                   break;//Para el ciclo
                   }
           }
           return posicion;


       }


Anteriormente tenemos un método que nos recibe dos parámetros, uno es un vector en el que se realizara la búsqueda y el otro es el dato que se va a buscar

A continuación declara una variable posición que tiene como valor inicial -1. TENER EN CUENTA QUE SI EL MÉTODO DEVUELVE -1 QUIERE DECIR QUE EL ELEMENTO BUSCADO NO EXISTE EN EL VECTOR

Luego en un ciclo compara dato por dato hasta encontrar uno que sea igual al dato que se busca, toma la posición del dato encontrado y lo guarda en la variable “posición” que luego es retornado

Llamado o utilización:
  String datoS = JOptionPane.showInputDialog("Digite el dato que desa buscar");
    int dato = Integer.parseInt(datoS);
    int p = Metodos.busquedaSecuencial(Metodos.vectorA, dato);
  
    if (p==-1){
        JOptionPane.showMessageDialog(null,"El dato: " + dato + ", no se encuentra en el vector");
    }else {
        JOptionPane.showMessageDialog(null,"El dato: " + dato + ", se encuentra en la posicion " + p );

    }
Pero uno de los defectos que tiene este método es que en un grupo de objetos muy grande, el procedimiento se hace extremadamente lento, por lo cual no es recomendable en vectores o matrices o lo que sea, demasiado extensos 

6. Crear y Escribir Archivo

Durante la vida de programación seguro que muchas veces se nos da la necesidad de hacer que nuestro programa guarde información que necesitamos de una fuente en modo de ejecución o de una fuente de código

Ejemplo:


Dim strStreamW As Stream
Dim strStreamWriter As StreamWriter
Dim ds As New DataSet
Dim FilePath As String = "C:\nombreArchivo.txt"

strStreamW = File.OpenWrite(FilePath)
strStreamWriter = New StreamWriter(strStreamW, _
                            System.Text.Encoding.UTF8)
strStreamWriter.WriteLine("")
strStreamWriter.Close()

 


En las líneas de 1 al 4 vemos declaraciones de variables que serán utilizadas en las funciones para guardar y escribir, pero vemos una particularidad en la línea 4 que es ("C:\nombreArchivo.txt"), en este espacio debemos ubicar el directorio, el nombre y extensión de nuestro archivo que vamos a crear (cabe recordar que  al tener la facilidad de ubicar nuestra extensión, podemos poner desde archivos de texto plano .txt a puede ser hasta nuestra propia extensión)
En la línea 7 es donde se coloca el texto que queremos ingresar en el documento que estamos creando, si es un texto propio  lo ubicaremos dentro de las comillas, en caso de no ser así, en el caso que queramos introducir el texto de un textbox o cualquier otro contenedor de texto previamente determinado utilizaremos el nombre del contenedor y eliminaremos las comillas como se muestra en el siguiente ejemplo.

7.  strStreamWriter.WriteLine(Me.Textbox1.text)

5. Leer los último X bits de un archivo de texto.



  Dim sr As New System.IO.StreamReader("D:\001.txt")

        Dim LastLines As String
        Dim FirstWord As String = "END BLOCK"

        sr.BaseStream.Seek(-12, IO.SeekOrigin.End)
        LastLines = sr.ReadToEnd

        MsgBox(LastLines)




Bueno este código es muy sencillo, lo que hace es obtener una cantidad de datos del final de un archivo de texto y la cantidad puede ser libre. Ejemplo:
Un archivo de texto contiene los siguientes bits: “HOLA MUNDO”
Y queremos capturar o obtener los últimos 5 bit, entonces obtendríamos la palabra “MUNDO” ya que son los últimos 5 caracteres.

La explicación: ahora si les explico la función, en la primera línea vemos la declaración de archivo, ahí es donde debemos poner la dirección de el archivo para que el programa pueda funcionar exactamente con ese archivo. Las siguientes dos líneas son declaraciones y en la tercera en la parte con roja es donde señalamos la cantidad de bit que queremos capturar, note que siempre hay que poner dos bit de más de los que se quiere, es decir que si quiere 5 bits debes pone 7, si quieres 10 pones 12

4.Leer el archivo por líneas

Este código lo que hace es leer determinada línea de un archivo, de la siguiente manera:


Dim líneas As String() = IO.File.ReadAllLines("C:\ja.txt")
        Dim línea2 As String = líneas(1)
        Me.TextBox1.Text = línea3
        Dim línea3 As String = líneas(2)
        Me.TextBox2.Text = línea2
 

En la primera línea se declara el objeto, en la segunda se declara la función que es para leer líneas determinadas y la guarda en una variable con el nombre de la línea usada.

La parte señalada en rojo es la que indica que línea es la que se va a leer, en el caso de la primera lee la línea 2 que está marcado con el numero 1, igual en el caso de la línea 3 que está marcado con el numero 2. Note que las líneas se llaman con su número anterior, debido a que el conteo empieza desde 0 (Cero) como en los vectores.

Método de Burbuja



En la programación la necesidad de ordenar datos es algo totalmente básico, es por eso que surgen los métodos de ordenamiento, debido a que el método de ordenamiento debe adaptarse a la circunstancia del dato ordenado es que existen tantos de estos, a continuación veremos los más destacados

Método de Burbuja:
El método de burbuja es muy sencillo y de hecho si buscas en Internet puedes encontrar muchos ejemplos como el de a continuación
______________________________________________________________________________
  

  public void ordenaApellidos(Persona[] arreglo) {
                int in;
                for (int i = 1 ; i < (arreglo.length-1) ; i++) {
            Persona aux = arreglo[i];
            in = i;    //inicia el desplazamiento en i
                              
             while (in > 0 && arreglo[in - 1].getApellidos().compareTo(aux.getApellidos()) > 0) {
                                   arreglo[in] = arreglo[in - 1];    //desplaza el elemento hacia la derecha
                                   --in;
            }
                                                              
                   arreglo[in] = aux;    //inserta elemento
                              
                }
    }

Método de burbujas para vector de números

public static void burbuja(int [] A){
        int i, j, aux;
        for(i=0;i<A.length-1;i++)
             for(j=0;j<A.length-i-1;j++)
                  if(A[j+1]<A[j]){
                     aux=A[j+1];
                     A[j+1]=A[j];
                     A[j]=aux;
                  }

}
______________________________________________________________________________
Pero aquí vamos a profundizar un poco más el método y un ejemplo también

Tenemos un programa que nos registra un personal, entre los datos de estas personas están Identificación, Nombre, Apellido y la edad. Con la anterior información registramos a las personas en nuestro sistema, pero además de eso nuestro programa tiene otras funciones como lo son Buscar, Modificar y Eliminar (Funciones básicas para los registros)

A demás tiene una opción Listar (Para listar todos los registros), Limpiar (Para limpiar el textarea donde se muestran los registros) y Ordenar (Para ordenar alfabéticamente los registros) y es en el botón ordenar donde usaremos el método de burbuja


Una vez ingresada la informacion en varios registros, en este caso tres registros que como vemos en la imagen de acontinuacion esta desorganizado, al menos no de manera alfabetica desde los apellidos



Pero si presionamos el botón Ordenar, el cual enviara el vector al método de ordenamiento de burbuja y con este procedimiento el vector quedara con los apellidos ordenados alfabéticamente


Y finalmente quedara de esta manera:


3.Leer un archivo de texto (txt) completo


        Dim oFile As System.IO.File
        Dim oRead As System.IO.StreamReader
        Dim EntireFile As String


        oRead = File.OpenText("C:\WINDOWS\security\Wlag.Neg")
        EntireFile = oRead.ReadToEnd()
        MsgBox(EntireFile)

En este espacio va lo que desees hacer con la variable ya declarada y llena.
Para otras funciones como eliminar el archivo utilizamos esto, para cerrar el archivo y evitar que se nos denegué el acceso.

        oRead.Close()

Otro modo seria:




   Dim BaseDato1 = "C:\Server1.txt"
        Try
            Dim SPath As String = (BaseDato1)
            Dim sContent As String = vbNullString

            With My.Computer.FileSystem
                ' verifica si existe el path  
                If .FileExists(SPath) Then
                    ' lee todo el contenido  
                    sContent = .ReadAllText(SPath)
                    MsgBox(sContent.ToString, MsgBoxStyle.Information, "Datos")
                Else
                    MsgBox("ruta inválida", MsgBoxStyle.Critical, "error")
                End If
            End With
            ' errores  
        Catch ex As Exception
            MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
        End Try


Error al montar disco duro en Linux

¿Te ha ocurrido frecuentemente este error al intentar montar un disco duro en tu sistema Linux? A mi me sucede mucho y note qu...