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