Consulta

Publicado en 'Programación' por JuanPE, 4 Jul 2016.





  1. JuanPE

    JuanPE Miembro nuevo

    Registro:
    25 Jul 2015
    Mensajes:
    21
    Likes:
    0




    Tengo un formulario basico en el cual me piden guardar de alumnos matriculados dentro de un archivo txt en alguna unidad. Lo cual me funciona.
    Pero me piden que solo deben haber 20 alumnos matriculados en cada ciclo
    Como comparo que solo haya 20 matriculados??
     


  2. thebig135

    thebig135 Miembro de bronce

    Registro:
    24 Ene 2015
    Mensajes:
    1,353
    Likes:
    438
    Usa una variable para contar cuantos alumnos se van agregando o cuantos alumnos tiene cada ciclo.
     
  3. JuanPE

    JuanPE Miembro nuevo

    Registro:
    25 Jul 2015
    Mensajes:
    21
    Likes:
    0
    Claro eso es lo que estoy tratando de hacer pero no se como contar dentro del archivo de texto :/ (el ciclo es el ultimo).
    Es la primera vez que hago esto.. :/
    12|Alu1|Ape1|MASCULINO|Jiron|Lima|Lima|magdalena|informatica| I |
     
  4. kaloja

    kaloja Miembro frecuente

    Registro:
    28 Ago 2012
    Mensajes:
    170
    Likes:
    35
    Forero,
    Si puedes guardar registros en un bloc de notas o archivo de texto.

    Imagino que tambien puedes jalar datos del bloc de notas, has una conexion y crearte un select count.. con tu registro del bloc d notas.

    Haz lo inverso, pero esta vez que los datos de origen sea de tu bloc de notas.

    :question:
     
  5. Raigen

    Raigen Miembro de bronce

    Registro:
    13 Jul 2015
    Mensajes:
    1,127
    Likes:
    149
    Estas usando objetos. Por que fácil lo pones en una lista y ya.
     
  6. JuanPE

    JuanPE Miembro nuevo

    Registro:
    25 Jul 2015
    Mensajes:
    21
    Likes:
    0
    Recién estoy llevando esto, nos dijeron que sea una plantilla d matricula que guarde los datos en un txt , lo cual si hace.
    Ahora como hago para que me cuente cuantos alumnos matriculados tengo en cada ciclo (como hago que entre y compare en el notepad los alumnos matriculados en el ciclo).
    No nos han enseñado mucho de eso.. bueno nada..
     
  7. Raigen

    Raigen Miembro de bronce

    Registro:
    13 Jul 2015
    Mensajes:
    1,127
    Likes:
    149
    Podrías hacer que por cada linea que lees se vaya acumulando y cuando llegue a 20 no permitas que se agreguen mas registros. bloqueas los botones.
    Si muestras los datos en una grilla pues lees las filas y si llega a 20 bloqueas los botones.
    ¿Que lenguaje estas usando?
    Si puedes pon una imagen de tu interfaz
     
  8. JuanPE

    JuanPE Miembro nuevo

    Registro:
    25 Jul 2015
    Mensajes:
    21
    Likes:
    0
    subefotos.com/ver/?04624b7afeb18f5603207b2b42475714o.jpg

    Esta todo desordenado.. ya cuando salga la cantidad de alumnos lo ordeno :D
     
  9. n00b

    n00b Miembro frecuente

    Registro:
    12 Dic 2015
    Mensajes:
    135
    Likes:
    49
    Guarda cada alumno en una línea en el archivo, luego cuando vayas a guardar, antes de agregarlo al archivo verificas que no haya más de 20 del mismo ciclo. Lo que debes es serializar tu objeto a un formato que te permita trabjar más cómodamente, por ejemplo a formato JSON, y ya no tener que separar los campos por pipes ( | ).
    Pasos:
    1- Conéctate a internet y abre tu proyecto con Visual Studio
    2- Anda a al menu superior Tools/ Nugger Package Manager/ Package manager Console
    3- Se abrirá la consola en la parte inferior, allí escribe PM>Install-Package Newtonsoft.Json ( sin el "PM>" )
    4- Se agregarán las referencias de Newtonsoft a tu proyecto con lo que podrás usar su librería para Serializar/Deserializar en formato JSON.

    Ahora sí, hazte una clase que te permita obtener el contenido del documento pero en una forma manejable, por ejemplo una lista de Alumnos. Se sabe que cada línea es un alumno entonces es fácil, una función que agarre cada línea y la deserialice, es decir que la convierta en una instancia de Alumno y que la guarde en una lista que devolverá.

    Luego hazte un método que agregue una linea al archivo, es decir que agregue un alumno al archivo, lógicamente antes tendrás que hacer la validación de que no debe haber más de 20 del mismo ciclo.

    Y aquí tienes la clase: http://pastebin.com/3kzMA7N2

    Como la usarías
    Tiene una clase Alumno
    PHP:
    Public Class Alumno
        
    Public Property Codigo As String
        
    Public Property Nombre As String
        
    Public Property Apellido As String
        
    Public Property Ciclo As String
    End 
    Class
    PHP:
    Dim rutaArchivo1 "C:\Temp\archivo1.txt"
    Dim nombreCiclo1 "Ciclo 1"
    Dim fileHelper As New FileHelper(Of Alumno)

    'Tienes un nuevo alumno para agregar para el ciclo 1
    Dim nuevoAlumno As New Alumno
    With nuevoAlumno
        .Codigo = "Code 25"
        .Nombre = "Pedro"
        .Apellido = "Picapiedra"
        .Ciclo = nombreCiclo1
    End With

    '
    Obtienes los alumnos que se encuentran en el archivo archivo.txt

    Dim alumnosCiclo1 
    fileHelper.ObtenerDeArchivo(rutaArchivo1)

    'Compruebas que haya menos de 20 del mismo ciclo
    Dim cantidad = (From a In alumnosCiclo1
                    Where nombreCiclo1.Equals(a.Ciclo)
                    Select a).ToList().Count

    If (cantidad < 20) Then
        fileHelper.AgregarEnArchivo(rutaArchivo1, nuevoAlumno)
    Else
        Console.WriteLine("No se pueden ingresar más de 20!!!!!!!!")
    End If
    Bueno esa es +/- la idea. La clase que está en pastebin es genérica por lo que puedes enviarle Alumno, Profesor, Manzana, ect. Cualquier clase serializable.

    Supongo que estás empezando, tal vez te parezca nuevo parte de la sintaxis, si es así entonces investiga sobre Linq y Generics en VB.Net. Y tal vez sobre JSON, qué es serializar/deserialzar.