Vamos a usar un ejemplo con 3 cajas de texto. Simulando un número de factura, que al dar click en aumentar se incrementará en 1 el número de la tercer caja de texto.
Hay funciones para verificar si la carpeta y archivo de texto existen, para crearlos en caso de que no, para borrar el contenido del archivo y volver a escribir, cabe recalcar que se trabajará con la primer linea del archivo.
Dudas o preguntas, comenten =)
A continuación, el código.
Private Sub btn_guardar_Click(sender As Object, e As EventArgs) Handles btn_guardar.Click If (Me.txt_serie1.Text = "" Or Me.txt_serie2.Text = "" Or Me.txt_numero_serie.Text = "") Then MsgBox("Faltan algunos campos") Else If verifica_existe_carpeta() Then If verifica_existe_archivo() Then ' MsgBox("Archivo existe") borra_info_fac() escribir_numero_de_factura(Me.txt_serie1.Text, Me.txt_serie2.Text, Me.txt_numero_serie.Text) Else ' MsgBox("Archivo no existe") crear_archivo() escribir_numero_de_factura(Me.txt_serie1.Text, Me.txt_serie2.Text, Me.txt_numero_serie.Text) End If Else ' MsgBox("Carpeta no existe") crear_carpeta() crear_archivo() escribir_numero_de_factura(Me.txt_serie1.Text, Me.txt_serie2.Text, Me.txt_numero_serie.Text) End If cargar_numero_fac() End If End Sub Private Function verifica_existe_carpeta() As Boolean 'verifica si existe el archivo Dim resp As Boolean = False Dim ruta As String = "C:\iconos" If Directory.Exists(ruta) = True Then resp = True End If Return resp End Function Private Function verifica_existe_archivo() As Boolean 'verifica si existe el archivo Dim resp As Boolean = False Dim ruta As String = "C:\iconos\num_serie.txt" If File.Exists(ruta) = True Then resp = True End If Return resp End Function Private Sub cargar_numero_fac() 'carga el numero de la factura If verifica_existe_carpeta() And verifica_existe_archivo() Then Dim objStreamReader As StreamReader Dim strLine As String objStreamReader = New StreamReader("C:\iconos\num_serie.txt") 'extraemos la primer linea de texto strLine = objStreamReader.ReadLine objStreamReader.Close() If strLine = "" Then Me.txt_serie1.Text = "000" Me.txt_serie2.Text = "000" Me.txt_numero_serie.Text = "000000000" Else Dim Arreglo As String() = strLine.Split("-") Me.txt_serie1.Text = Arreglo(0) Me.txt_serie2.Text = Arreglo(1) Me.txt_numero_serie.Text = Arreglo(2) End If Else ' MsgBox("Carpeta y/o archivo no existe") Me.txt_serie1.Text = "000" Me.txt_serie2.Text = "000" Me.txt_numero_serie.Text = "000000000" End If End Sub Private Sub crear_carpeta() Dim ruta As String = "C:\" My.Computer.FileSystem.CreateDirectory(ruta & "\iconos") End Sub Private Sub crear_archivo() Dim ruta As String = "C:\iconos\num_serie.txt" Dim fi As FileInfo = New FileInfo(ruta) End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load cargar_numero_fac() End Sub Private Sub escribir_numero_de_factura(ByVal serie1 As String, ByVal serie2 As String, ByVal num_serie As String) Dim ruta As String = "C:\iconos\num_serie.txt" Dim sw As StreamWriter sw = File.CreateText(ruta) sw.WriteLine(serie1 & "-" & serie2 & "-" & num_serie) sw.Flush() sw.Close() End Sub Private Sub borra_info_fac() Using file As New IO.StreamWriter("C:\iconos\num_serie.txt") file.Flush() End Using End Sub Private Sub incrementa_num_fac() ' extraemos contenido Dim objStreamReader As StreamReader Dim strLine As String objStreamReader = New StreamReader("C:\iconos\num_serie.txt") 'Leemos la primer linea de texto strLine = objStreamReader.ReadLine 'cerramos el archivo. objStreamReader.Close() Dim Arreglo As String() = strLine.Split("-")' separamos la cadena Dim s1 As String = Arreglo(0) Dim s2 As String = Arreglo(1) Dim s3 As String = CStr(CInt(Arreglo(2)) + 1)'sumamos en 1 '-------------borramos contenido borra_info_fac() '---------------actualiza escribir_numero_de_factura(s1, s2, s3) End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click incrementa_num_fac() cargar_numero_fac() End Sub
No hay comentarios:
Publicar un comentario