SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Imports System.IO
Public Class Problemario
    Structure datos
        Dim numtra As Integer
        Dim nombre As String
        Dim dep As String
        Dim salario As Single
    End Structure

    Dim    archivo As String = ""
    Dim    vdatos(1000) As datos
    Dim    registro As Integer = 0 'total de registros
    Dim    registronow As Integer = 0 'registro actual
    Dim    banmodificar As Integer = 0

    Private Sub AbrirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles AbrirToolStripMenuItem.Click
        Dim dlgopen As New OpenFileDialog
        dlgopen.Filter = "Word Documents|*.doc|Excel Worksheets|*.xls|PowerPoint
Presentations|*.ppt" & "|Office Files|*.doc;*.xls;*.ppt" & "|All Files|*.*"
        dlgopen.Title = "Select a Cursor File"
        If dlgopen.ShowDialog() = Windows.Forms.DialogResult.OK Then
            'creamos flujo
            Dim flujoopen As New FileStream(dlgopen.FileName, FileMode.Open,
FileAccess.Read)
            Dim leerfile As New BinaryReader(flujoopen)
            archivo = dlgopen.FileName
            'leemos
            If leerfile.PeekChar <> -1 Then 'si si existe texto
                 'obtenemos total de registros
                 registro = CType(Math.Ceiling(flujoopen.Length / 70), Integer)

                Dim a As Integer
                For a = 0 To registro - 1
                    leerfile.BaseStream.Seek(70 * a, SeekOrigin.Begin)     '70 bytes
de largo por cada registro
                    vdatos(a).numtra = leerfile.ReadInt32.ToString
                    vdatos(a).nombre = leerfile.ReadString.ToString
                    vdatos(a).dep = leerfile.ReadString.ToString
                    vdatos(a).salario = leerfile.ReadSingle.ToString
                Next

                  Nuevo.Enabled = True
                  verregistro(0)
                  'habilitamos menus de navegacion respecto a la posicion actual
                  If registro > 1 Then 'si hay mas de un registro
                      If registronow = registro - 1 Then 'si esta en la ultima
posicion
                          Anterior.Enabled = True
                          Primero.Enabled = True
                      ElseIf registronow = 0 Then 'si esta en la primer posicion
                          Ultimo.Enabled = True
                          Siguiente.Enabled = True
                      Else 'si cae aki es porke es un registro de en medio
                          Anterior.Enabled = True
                          Primero.Enabled = True
                          Ultimo.Enabled = True
                          Siguiente.Enabled = True
End If
                   End If
            Else
                Nuevo.Enabled = True
                sblabel.Text = "Sin registros"
                TextBox1.Text = ""
                TextBox2.Text = ""
                TextBox3.Text = ""
                TextBox4.Text = ""
                registro = 0 'inicializamos los registros
            End If
            GuardarToolStripMenuItem.Enabled = True
            leerfile.Close()
            flujoopen.Close()
            'ponemos nombre de archivo
            Label1.Text = "Has abierto el archivo " +
Path.GetFileName(dlgopen.FileName)
            TextBox1.Focus()
        End If
        Siguiente.Enabled = True
        Ultimo.Enabled = True
        Modificar.Enabled = True
        Eliminar.Enabled = True
        CrearToolStripMenuItem.Enabled = False
    End Sub
    Sub verregistro(ByVal numreg) 'esta funcion nos desplaza entre los registros en
memoria
        registronow = numreg
        TextBox1.Text = vdatos(registronow).numtra
        TextBox2.Text = vdatos(registronow).nombre
        TextBox3.Text = vdatos(registronow).dep
        TextBox4.Text = vdatos(registronow).salario
        sblabel.Text = "Registro " & registronow + 1 & "/" & registro
        TextBox1.Focus()
    End Sub

    Private Sub GuardarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles GuardarToolStripMenuItem.Click
        If registro > 0 Then
            Dim flujosave As New FileStream(archivo, FileMode.Create,
FileAccess.Write)
            Dim escribirfile As New BinaryWriter(flujosave)
            Dim a As Integer

            For a = 0 To registro - 1
                 escribirfile.BaseStream.Seek(70 * a, SeekOrigin.Begin)   '70 bytes
de largo por cada registro
                 escribirfile.Write(CType(vdatos(a).numtra, Integer))
                 escribirfile.Write(CType(vdatos(a).nombre, String))
                 escribirfile.Write(CType(vdatos(a).dep, String))
                 escribirfile.Write(CType(vdatos(a).salario, Single))
            Next

            escribirfile.Close()
            flujosave.Close()
        End If
    End Sub
Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles SalirToolStripMenuItem.Click
        Application.Exit()
    End Sub

    Private Sub Nuevo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Nuevo.Click
        'habilitamos los textboxt
        TextBox1.Enabled = True
        TextBox2.Enabled = True
        TextBox3.Enabled = True
        TextBox4.Enabled = True
        TextBox1.Focus()
        'limpiamos los textboxt
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox1.Focus()

        'habilitamos botones
        btnguardar.Visible = True
        btncancelar.Visible = True

        'deshabilitamos menus
        Modificar.Enabled = False
        Eliminar.Enabled = False
        Nuevo.Enabled = False
        Primero.Enabled = False
        Siguiente.Enabled = False
        Anterior.Enabled = False
        Ultimo.Enabled = False
    End Sub

    Private Sub btnguardar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnguardar.Click
        If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or
TextBox4.Text = "" Then
             MessageBox.Show("No se han llenado todos los campos", "Cuidado",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Else
             If banmodificar = 1 Then 'si estaba modificando entonces guardamos en la
posicion que estaba
                 banmodificar = 0
                 'guardamos en vector pero en la posicion actual
                 vdatos(registronow).numtra = CType(TextBox1.Text, Integer)
                 vdatos(registronow).nombre = TextBox2.Text
                 vdatos(registronow).dep = TextBox3.Text
                 vdatos(registronow).salario = CType(TextBox4.Text, Single)

            Else 'significa que esta guardando un nuevo registro

                'guardamos en vector
                vdatos(registro).numtra = CType(TextBox1.Text, Integer)
                vdatos(registro).nombre = TextBox2.Text
                vdatos(registro).dep = TextBox3.Text
                vdatos(registro).salario = CType(TextBox4.Text, Single)
registronow = registro 'el registro actual sera el recientemente
creado
                 registro += 1
             End If

             btncancelar.Visible = False
             btnguardar.Visible = False
             TextBox1.Focus()
             sblabel.Text = "Registro " & registronow + 1 & "/" & registro

             'habilitamos menus de navegacion respecto a la posicion actual
             If registro > 1 Then 'si hay mas de un registro
                 If registronow = registro - 1 Then 'si esta en la ultima posicion
                     Anterior.Enabled = True
                     Primero.Enabled = True
                 ElseIf registronow = 0 Then 'si esta en la primer posicion
                     Ultimo.Enabled = True
                     Siguiente.Enabled = True
                 Else 'si cae aki es porke es un registro de en medio
                     Anterior.Enabled = True
                     Primero.Enabled = True
                     Ultimo.Enabled = True
                     Siguiente.Enabled = True
                 End If
             End If

            'habilitamos botones de edicion
            Modificar.Enabled = True
            Eliminar.Enabled = True
            Nuevo.Enabled = True
            'bloqueamos los text hasta agregar uno nuevo
            TextBox1.Enabled = False
            TextBox2.Enabled = False
            TextBox3.Enabled = False
            TextBox4.Enabled = False
        End If
    End Sub

    Private Sub btncancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btncancelar.Click
        btncancelar.Visible = False
        btnguardar.Visible = False
        Nuevo.Enabled = True
        If banmodificar = 1 Then 'si estaba modificando pero cancelo
             banmodificar = 0
             verregistro(registronow)
        Else
             TextBox1.Text = ""
             TextBox2.Text = ""
             TextBox3.Text = ""
             TextBox4.Text = ""
        End If

         If registro > 0 Then 'si minimo existe un registro
             Modificar.Enabled = True
             Eliminar.Enabled = True
         End If
             TextBox1.Enabled = False
TextBox2.Enabled = False
              TextBox3.Enabled = False
              TextBox4.Enabled = False
    End Sub

    Private Sub Primero_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Primero.Click
        verregistro(0)
        'si le dio primero, significa que a fuerzas minimo hay 2 registros
        Primero.Enabled = False
        Anterior.Enabled = False
        Siguiente.Enabled = True
        Ultimo.Enabled = True
    End Sub

    Private Sub Anterior_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Anterior.Click
        verregistro(registronow - 1) 'despues de mandar llamar este procedimiento,
el valor de registronow cambia
        If registronow = 0 Then 'si ya llego al principio
             Primero.Enabled = False
             Anterior.Enabled = False
        Else
             Primero.Enabled = True
             Anterior.Enabled = True
        End If

        'si presionó anterior, significa que minimo hay 2 registros, entonces como
ya te cambio a uno anterior ps habilitamos sin preguntar, "siguiente" y "ultimo"
        Siguiente.Enabled = True
        Ultimo.Enabled = True
    End Sub

    Private Sub Siguiente_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Siguiente.Click
        verregistro(registronow + 1) 'despues de mandar llamar este procedimiento,
el valor de registronow cambia
        If registronow = registro - 1 Then 'si ya llego al ultimo registro
             Ultimo.Enabled = False
             Siguiente.Enabled = False
        Else
             Ultimo.Enabled = True
             Siguiente.Enabled = True
        End If

        'si presionno siguiente signifiica que mminimo hay 2 regsitros, entonces
habilitamos sin preguntar, "anterior" y "primero"
        Primero.Enabled = True
        Anterior.Enabled = True
    End Sub

    Private Sub Ultimo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Ultimo.Click
        verregistro(registro - 1)
        'si presiono el ultimo signifiica que mminimo hay 2 registros asi que
habilitamos "anterior" y "primero" sin preguntar
        Anterior.Enabled = True
        Primero.Enabled = True
Ultimo.Enabled = False
        Siguiente.Enabled = False
    End Sub

    Private Sub Modificar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Modificar.Click
        btnguardar.Visible = True
        btncancelar.Visible = True

           banmodificar = 1 'habilitamos bandera que nos dice que esta modificando un
registro
        TextBox1.Enabled = True
        TextBox2.Enabled = True
        TextBox3.Enabled = True
        TextBox4.Enabled = True
        TextBox1.Focus()
        'deshabilitamos menus
        Modificar.Enabled = False
        Eliminar.Enabled = False
        Nuevo.Enabled = False
        Primero.Enabled = False
        Siguiente.Enabled = False
        Anterior.Enabled = False
        Ultimo.Enabled = False
        TextBox1.Focus()
    End Sub

    Private Sub Eliminar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Eliminar.Click
        If MessageBox.Show("¿Esta seguro que desea eliminar este registro?",
"Cuidado", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) =
Windows.Forms.DialogResult.Yes Then
            vdatos(registronow).numtra = CType(0, Integer)
            vdatos(registronow).nombre = ""
            vdatos(registronow).dep = ""
            vdatos(registronow).salario = CType(0, Single)

               If registro = 1 Then 'si el registro eliminado era el uniko ke habia
                   Eliminar.Enabled = False
                   Modificar.Enabled = False
                   Primero.Enabled = False
                   Siguiente.Enabled = False
                   Anterior.Enabled = False
                   Ultimo.Enabled = False

                      'limpiamos cuadros de text
                      TextBox1.Text = ""
                      TextBox2.Text = ""
                      TextBox3.Text = ""
                      TextBox4.Text = ""

                      sblabel.Text = "Sin registros"
                      registro = 0
                      registronow = 0
               Else
                If registronow <> registro - 1 Then 'si cae aki es porke habia por
lo menos dos registros y el eliminado no fue el ultimo
                    'recorremos vector
Dim a As Integer
                   For a = registronow To registro - 2
                       vdatos(a).numtra = vdatos(a + 1).numtra
                       vdatos(a).nombre = vdatos(a + 1).nombre
                       vdatos(a).dep = vdatos(a + 1).dep
                       vdatos(a).salario = vdatos(a + 1).salario
                   Next
                   verregistro(registronow)
               Else
                   registronow -= 1
                   verregistro(registronow)
               End If
               'decrementamos contadores
               registro -= 1
               sblabel.Text = "Registro " & registronow + 1 & "/" & registro
           End If

           'habilitamos menus de navegacion respecto a la posicion actual
           If registro > 1 Then 'si hay mas de un registro
               If registronow = registro - 1 Then 'si esta en la ultima posicion
                   Anterior.Enabled = True
                   Primero.Enabled = True
               ElseIf registronow = 0 Then 'si esta en la primer posicion
                   Ultimo.Enabled = True
                   Siguiente.Enabled = True
               Else 'si cae aki es porke es un registro de en medio
                   Anterior.Enabled = True
                   Primero.Enabled = True
                   Ultimo.Enabled = True
                   Siguiente.Enabled = True
               End If
           End If

       End If
   End Sub

    Private Sub CrearToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CrearToolStripMenuItem.Click
        Dim dlgopen As New SaveFileDialog
        dlgopen.Filter = "Word Documents|*.doc|Excel Worksheets|*.xls|PowerPoint
Presentations|*.ppt" & "|Office Files|*.doc;*.xls;*.ppt" & "|All Files|*.*"

        dlgopen.CheckFileExists = False
        If dlgopen.ShowDialog() = Windows.Forms.DialogResult.OK Then
            'creamos flujo
            Dim flujoopen As New FileStream(dlgopen.FileName, FileMode.OpenOrCreate,
FileAccess.ReadWrite)
            Dim leerfile As New BinaryReader(flujoopen)
            archivo = dlgopen.FileName
            Nuevo.Enabled = True
            sblabel.Text = "Sin registros"
            GuardarToolStripMenuItem.Enabled = True
            'ponemos nombre de archivo
            Label1.Text = "Has creado el archivo " +
Path.GetFileName(dlgopen.FileName)
            TextBox1.Focus()
            AbrirToolStripMenuItem.Enabled = False
        End If
End Sub

    Private Sub EmpezarNuevamenteToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
EmpezarNuevamenteToolStripMenuItem.Click
//mensaje que se manda para saber si ya guardo los datos        If
MessageBox.Show("Se reiniciara nuevamente el programa y se podran perder los datos
si no se guardo. Aun quiere continuar", "Cuidado", MessageBoxButtons.YesNo,
MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes Then
            Application.Restart()//reiniciamos el programa
        End If
    End Sub

    Private Sub Problemario_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
//se le pone el limite de caracteres que puede aceptar el textboxt
        TextBox1.MaxLength = 10
        TextBox3.MaxLength = 10
        TextBox4.MaxLength = 10
    End Sub
End Class

Más contenido relacionado

Destacado

Top Male Performers on The Ed Sullivan Show
Top Male Performers on The Ed Sullivan ShowTop Male Performers on The Ed Sullivan Show
Top Male Performers on The Ed Sullivan Showtimcavan
 
Merchant sales deck 1 28-12
Merchant sales deck 1 28-12Merchant sales deck 1 28-12
Merchant sales deck 1 28-12Joe Semerdjian
 
Top female performers on sullivan
Top female performers on sullivanTop female performers on sullivan
Top female performers on sullivantimcavan
 
Get Acquainted Presentation Logan
Get Acquainted Presentation LoganGet Acquainted Presentation Logan
Get Acquainted Presentation LoganSabrinaLogan1
 
Texas star chart presentation
Texas star chart presentationTexas star chart presentation
Texas star chart presentationbigbadn8
 
Criticità e positività nell'ipermedialità
Criticità e positività nell'ipermedialitàCriticità e positività nell'ipermedialità
Criticità e positività nell'ipermedialitàmauro.iorio
 
Thinking and language
Thinking and languageThinking and language
Thinking and languageRavi Soni
 
Evidence based treatment approaches for prevention of dementia
Evidence based treatment approaches for prevention of dementiaEvidence based treatment approaches for prevention of dementia
Evidence based treatment approaches for prevention of dementiaRavi Soni
 
Aging concept and Cognitive aging
Aging concept and Cognitive agingAging concept and Cognitive aging
Aging concept and Cognitive agingRavi Soni
 
Alzheimer's disease: Clinical Assessment and Management
Alzheimer's disease: Clinical Assessment and ManagementAlzheimer's disease: Clinical Assessment and Management
Alzheimer's disease: Clinical Assessment and ManagementRavi Soni
 
Guidelines for Management of Dementia
Guidelines for Management of DementiaGuidelines for Management of Dementia
Guidelines for Management of DementiaRavi Soni
 
Benzodiazepines in elderly
Benzodiazepines in elderlyBenzodiazepines in elderly
Benzodiazepines in elderlyRavi Soni
 
Non-pharmacological management of dementia
Non-pharmacological management of dementiaNon-pharmacological management of dementia
Non-pharmacological management of dementiaRavi Soni
 

Destacado (14)

Top Male Performers on The Ed Sullivan Show
Top Male Performers on The Ed Sullivan ShowTop Male Performers on The Ed Sullivan Show
Top Male Performers on The Ed Sullivan Show
 
Merchant sales deck 1 28-12
Merchant sales deck 1 28-12Merchant sales deck 1 28-12
Merchant sales deck 1 28-12
 
Top female performers on sullivan
Top female performers on sullivanTop female performers on sullivan
Top female performers on sullivan
 
Get Acquainted Presentation Logan
Get Acquainted Presentation LoganGet Acquainted Presentation Logan
Get Acquainted Presentation Logan
 
Texas star chart presentation
Texas star chart presentationTexas star chart presentation
Texas star chart presentation
 
Criticità e positività nell'ipermedialità
Criticità e positività nell'ipermedialitàCriticità e positività nell'ipermedialità
Criticità e positività nell'ipermedialità
 
Thinking and language
Thinking and languageThinking and language
Thinking and language
 
Evidence based treatment approaches for prevention of dementia
Evidence based treatment approaches for prevention of dementiaEvidence based treatment approaches for prevention of dementia
Evidence based treatment approaches for prevention of dementia
 
Aging concept and Cognitive aging
Aging concept and Cognitive agingAging concept and Cognitive aging
Aging concept and Cognitive aging
 
Primary
PrimaryPrimary
Primary
 
Alzheimer's disease: Clinical Assessment and Management
Alzheimer's disease: Clinical Assessment and ManagementAlzheimer's disease: Clinical Assessment and Management
Alzheimer's disease: Clinical Assessment and Management
 
Guidelines for Management of Dementia
Guidelines for Management of DementiaGuidelines for Management of Dementia
Guidelines for Management of Dementia
 
Benzodiazepines in elderly
Benzodiazepines in elderlyBenzodiazepines in elderly
Benzodiazepines in elderly
 
Non-pharmacological management of dementia
Non-pharmacological management of dementiaNon-pharmacological management of dementia
Non-pharmacological management of dementia
 

Similar a Imports system (12)

Altas
AltasAltas
Altas
 
Altas
AltasAltas
Altas
 
Codigo proceso
Codigo procesoCodigo proceso
Codigo proceso
 
Codigo proceso
Codigo procesoCodigo proceso
Codigo proceso
 
Codigo tarea deposito
Codigo tarea depositoCodigo tarea deposito
Codigo tarea deposito
 
Codigo tarea deposito
Codigo tarea depositoCodigo tarea deposito
Codigo tarea deposito
 
Guia programacon formulario cambiar clave
Guia programacon formulario cambiar claveGuia programacon formulario cambiar clave
Guia programacon formulario cambiar clave
 
Altas alumnos
Altas alumnosAltas alumnos
Altas alumnos
 
Altas alumnos
Altas alumnosAltas alumnos
Altas alumnos
 
codigos de algunas pantallas
codigos de algunas pantallas codigos de algunas pantallas
codigos de algunas pantallas
 
Visual basic
Visual basicVisual basic
Visual basic
 
Documento de altas
Documento de altasDocumento de altas
Documento de altas
 

Imports system

  • 1. Imports System.IO Public Class Problemario Structure datos Dim numtra As Integer Dim nombre As String Dim dep As String Dim salario As Single End Structure Dim archivo As String = "" Dim vdatos(1000) As datos Dim registro As Integer = 0 'total de registros Dim registronow As Integer = 0 'registro actual Dim banmodificar As Integer = 0 Private Sub AbrirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AbrirToolStripMenuItem.Click Dim dlgopen As New OpenFileDialog dlgopen.Filter = "Word Documents|*.doc|Excel Worksheets|*.xls|PowerPoint Presentations|*.ppt" & "|Office Files|*.doc;*.xls;*.ppt" & "|All Files|*.*" dlgopen.Title = "Select a Cursor File" If dlgopen.ShowDialog() = Windows.Forms.DialogResult.OK Then 'creamos flujo Dim flujoopen As New FileStream(dlgopen.FileName, FileMode.Open, FileAccess.Read) Dim leerfile As New BinaryReader(flujoopen) archivo = dlgopen.FileName 'leemos If leerfile.PeekChar <> -1 Then 'si si existe texto 'obtenemos total de registros registro = CType(Math.Ceiling(flujoopen.Length / 70), Integer) Dim a As Integer For a = 0 To registro - 1 leerfile.BaseStream.Seek(70 * a, SeekOrigin.Begin) '70 bytes de largo por cada registro vdatos(a).numtra = leerfile.ReadInt32.ToString vdatos(a).nombre = leerfile.ReadString.ToString vdatos(a).dep = leerfile.ReadString.ToString vdatos(a).salario = leerfile.ReadSingle.ToString Next Nuevo.Enabled = True verregistro(0) 'habilitamos menus de navegacion respecto a la posicion actual If registro > 1 Then 'si hay mas de un registro If registronow = registro - 1 Then 'si esta en la ultima posicion Anterior.Enabled = True Primero.Enabled = True ElseIf registronow = 0 Then 'si esta en la primer posicion Ultimo.Enabled = True Siguiente.Enabled = True Else 'si cae aki es porke es un registro de en medio Anterior.Enabled = True Primero.Enabled = True Ultimo.Enabled = True Siguiente.Enabled = True
  • 2. End If End If Else Nuevo.Enabled = True sblabel.Text = "Sin registros" TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" registro = 0 'inicializamos los registros End If GuardarToolStripMenuItem.Enabled = True leerfile.Close() flujoopen.Close() 'ponemos nombre de archivo Label1.Text = "Has abierto el archivo " + Path.GetFileName(dlgopen.FileName) TextBox1.Focus() End If Siguiente.Enabled = True Ultimo.Enabled = True Modificar.Enabled = True Eliminar.Enabled = True CrearToolStripMenuItem.Enabled = False End Sub Sub verregistro(ByVal numreg) 'esta funcion nos desplaza entre los registros en memoria registronow = numreg TextBox1.Text = vdatos(registronow).numtra TextBox2.Text = vdatos(registronow).nombre TextBox3.Text = vdatos(registronow).dep TextBox4.Text = vdatos(registronow).salario sblabel.Text = "Registro " & registronow + 1 & "/" & registro TextBox1.Focus() End Sub Private Sub GuardarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarToolStripMenuItem.Click If registro > 0 Then Dim flujosave As New FileStream(archivo, FileMode.Create, FileAccess.Write) Dim escribirfile As New BinaryWriter(flujosave) Dim a As Integer For a = 0 To registro - 1 escribirfile.BaseStream.Seek(70 * a, SeekOrigin.Begin) '70 bytes de largo por cada registro escribirfile.Write(CType(vdatos(a).numtra, Integer)) escribirfile.Write(CType(vdatos(a).nombre, String)) escribirfile.Write(CType(vdatos(a).dep, String)) escribirfile.Write(CType(vdatos(a).salario, Single)) Next escribirfile.Close() flujosave.Close() End If End Sub
  • 3. Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click Application.Exit() End Sub Private Sub Nuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Nuevo.Click 'habilitamos los textboxt TextBox1.Enabled = True TextBox2.Enabled = True TextBox3.Enabled = True TextBox4.Enabled = True TextBox1.Focus() 'limpiamos los textboxt TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox1.Focus() 'habilitamos botones btnguardar.Visible = True btncancelar.Visible = True 'deshabilitamos menus Modificar.Enabled = False Eliminar.Enabled = False Nuevo.Enabled = False Primero.Enabled = False Siguiente.Enabled = False Anterior.Enabled = False Ultimo.Enabled = False End Sub Private Sub btnguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnguardar.Click If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Then MessageBox.Show("No se han llenado todos los campos", "Cuidado", MessageBoxButtons.OK, MessageBoxIcon.Warning) Else If banmodificar = 1 Then 'si estaba modificando entonces guardamos en la posicion que estaba banmodificar = 0 'guardamos en vector pero en la posicion actual vdatos(registronow).numtra = CType(TextBox1.Text, Integer) vdatos(registronow).nombre = TextBox2.Text vdatos(registronow).dep = TextBox3.Text vdatos(registronow).salario = CType(TextBox4.Text, Single) Else 'significa que esta guardando un nuevo registro 'guardamos en vector vdatos(registro).numtra = CType(TextBox1.Text, Integer) vdatos(registro).nombre = TextBox2.Text vdatos(registro).dep = TextBox3.Text vdatos(registro).salario = CType(TextBox4.Text, Single)
  • 4. registronow = registro 'el registro actual sera el recientemente creado registro += 1 End If btncancelar.Visible = False btnguardar.Visible = False TextBox1.Focus() sblabel.Text = "Registro " & registronow + 1 & "/" & registro 'habilitamos menus de navegacion respecto a la posicion actual If registro > 1 Then 'si hay mas de un registro If registronow = registro - 1 Then 'si esta en la ultima posicion Anterior.Enabled = True Primero.Enabled = True ElseIf registronow = 0 Then 'si esta en la primer posicion Ultimo.Enabled = True Siguiente.Enabled = True Else 'si cae aki es porke es un registro de en medio Anterior.Enabled = True Primero.Enabled = True Ultimo.Enabled = True Siguiente.Enabled = True End If End If 'habilitamos botones de edicion Modificar.Enabled = True Eliminar.Enabled = True Nuevo.Enabled = True 'bloqueamos los text hasta agregar uno nuevo TextBox1.Enabled = False TextBox2.Enabled = False TextBox3.Enabled = False TextBox4.Enabled = False End If End Sub Private Sub btncancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncancelar.Click btncancelar.Visible = False btnguardar.Visible = False Nuevo.Enabled = True If banmodificar = 1 Then 'si estaba modificando pero cancelo banmodificar = 0 verregistro(registronow) Else TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" End If If registro > 0 Then 'si minimo existe un registro Modificar.Enabled = True Eliminar.Enabled = True End If TextBox1.Enabled = False
  • 5. TextBox2.Enabled = False TextBox3.Enabled = False TextBox4.Enabled = False End Sub Private Sub Primero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Primero.Click verregistro(0) 'si le dio primero, significa que a fuerzas minimo hay 2 registros Primero.Enabled = False Anterior.Enabled = False Siguiente.Enabled = True Ultimo.Enabled = True End Sub Private Sub Anterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Anterior.Click verregistro(registronow - 1) 'despues de mandar llamar este procedimiento, el valor de registronow cambia If registronow = 0 Then 'si ya llego al principio Primero.Enabled = False Anterior.Enabled = False Else Primero.Enabled = True Anterior.Enabled = True End If 'si presionó anterior, significa que minimo hay 2 registros, entonces como ya te cambio a uno anterior ps habilitamos sin preguntar, "siguiente" y "ultimo" Siguiente.Enabled = True Ultimo.Enabled = True End Sub Private Sub Siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Siguiente.Click verregistro(registronow + 1) 'despues de mandar llamar este procedimiento, el valor de registronow cambia If registronow = registro - 1 Then 'si ya llego al ultimo registro Ultimo.Enabled = False Siguiente.Enabled = False Else Ultimo.Enabled = True Siguiente.Enabled = True End If 'si presionno siguiente signifiica que mminimo hay 2 regsitros, entonces habilitamos sin preguntar, "anterior" y "primero" Primero.Enabled = True Anterior.Enabled = True End Sub Private Sub Ultimo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ultimo.Click verregistro(registro - 1) 'si presiono el ultimo signifiica que mminimo hay 2 registros asi que habilitamos "anterior" y "primero" sin preguntar Anterior.Enabled = True Primero.Enabled = True
  • 6. Ultimo.Enabled = False Siguiente.Enabled = False End Sub Private Sub Modificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Modificar.Click btnguardar.Visible = True btncancelar.Visible = True banmodificar = 1 'habilitamos bandera que nos dice que esta modificando un registro TextBox1.Enabled = True TextBox2.Enabled = True TextBox3.Enabled = True TextBox4.Enabled = True TextBox1.Focus() 'deshabilitamos menus Modificar.Enabled = False Eliminar.Enabled = False Nuevo.Enabled = False Primero.Enabled = False Siguiente.Enabled = False Anterior.Enabled = False Ultimo.Enabled = False TextBox1.Focus() End Sub Private Sub Eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Eliminar.Click If MessageBox.Show("¿Esta seguro que desea eliminar este registro?", "Cuidado", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes Then vdatos(registronow).numtra = CType(0, Integer) vdatos(registronow).nombre = "" vdatos(registronow).dep = "" vdatos(registronow).salario = CType(0, Single) If registro = 1 Then 'si el registro eliminado era el uniko ke habia Eliminar.Enabled = False Modificar.Enabled = False Primero.Enabled = False Siguiente.Enabled = False Anterior.Enabled = False Ultimo.Enabled = False 'limpiamos cuadros de text TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" sblabel.Text = "Sin registros" registro = 0 registronow = 0 Else If registronow <> registro - 1 Then 'si cae aki es porke habia por lo menos dos registros y el eliminado no fue el ultimo 'recorremos vector
  • 7. Dim a As Integer For a = registronow To registro - 2 vdatos(a).numtra = vdatos(a + 1).numtra vdatos(a).nombre = vdatos(a + 1).nombre vdatos(a).dep = vdatos(a + 1).dep vdatos(a).salario = vdatos(a + 1).salario Next verregistro(registronow) Else registronow -= 1 verregistro(registronow) End If 'decrementamos contadores registro -= 1 sblabel.Text = "Registro " & registronow + 1 & "/" & registro End If 'habilitamos menus de navegacion respecto a la posicion actual If registro > 1 Then 'si hay mas de un registro If registronow = registro - 1 Then 'si esta en la ultima posicion Anterior.Enabled = True Primero.Enabled = True ElseIf registronow = 0 Then 'si esta en la primer posicion Ultimo.Enabled = True Siguiente.Enabled = True Else 'si cae aki es porke es un registro de en medio Anterior.Enabled = True Primero.Enabled = True Ultimo.Enabled = True Siguiente.Enabled = True End If End If End If End Sub Private Sub CrearToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearToolStripMenuItem.Click Dim dlgopen As New SaveFileDialog dlgopen.Filter = "Word Documents|*.doc|Excel Worksheets|*.xls|PowerPoint Presentations|*.ppt" & "|Office Files|*.doc;*.xls;*.ppt" & "|All Files|*.*" dlgopen.CheckFileExists = False If dlgopen.ShowDialog() = Windows.Forms.DialogResult.OK Then 'creamos flujo Dim flujoopen As New FileStream(dlgopen.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite) Dim leerfile As New BinaryReader(flujoopen) archivo = dlgopen.FileName Nuevo.Enabled = True sblabel.Text = "Sin registros" GuardarToolStripMenuItem.Enabled = True 'ponemos nombre de archivo Label1.Text = "Has creado el archivo " + Path.GetFileName(dlgopen.FileName) TextBox1.Focus() AbrirToolStripMenuItem.Enabled = False End If
  • 8. End Sub Private Sub EmpezarNuevamenteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EmpezarNuevamenteToolStripMenuItem.Click //mensaje que se manda para saber si ya guardo los datos If MessageBox.Show("Se reiniciara nuevamente el programa y se podran perder los datos si no se guardo. Aun quiere continuar", "Cuidado", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes Then Application.Restart()//reiniciamos el programa End If End Sub Private Sub Problemario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load //se le pone el limite de caracteres que puede aceptar el textboxt TextBox1.MaxLength = 10 TextBox3.MaxLength = 10 TextBox4.MaxLength = 10 End Sub End Class