• Domingo 22 de Diciembre de 2024, 16:18

Autor Tema:  PROGRAMA QUE LEE ARCHIVO, LO ORDENA, Y LO GRABA ...  (Leído 960 veces)

marcelomontagna

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
PROGRAMA QUE LEE ARCHIVO, LO ORDENA, Y LO GRABA ...
« en: Viernes 4 de Julio de 2008, 22:58 »
0
ESTE PROGRAMA DE CONSOLA

1. PREGUNTA EL NOMBRE DEL ARCHIVO

2. LO "LEE", ABRE Y PASA A MOMORIA EN LA VIARIABLE VECTOR()

3. "ORDENA" DE MENOR A MAYOR

4. Y "GRABA" EL ARCHIVO ORDENADO

LEE - ORDENA - GRABA

LO QUE VEO ES QUE ALGUNOS CARACTERES RESERVADOS NO LOS LEVANTA ENTONCES EL ARCHIVO DE ENTRADA ES
DE POR EJEMPLO 1500 DIGITOS Y EL RESULTANTE DE SALIDA CON MISMO NOMBRE DE DE 1498, NO LEE LOS CARACTERES "RAROS" COMO SER :  ¥╚ Ì ■

Y COMO SERIA MODIFICAR EL PROGRAMA PARA QUE LEA:

1. LINEA X LINEA DE A VARIOS CARACTERES

2. Y SI EL ARCHIVO ES DE LONGITUD FIJA, O SEA 1000 REGISTROS DE 100 DIGITUS CADA UNO

-----------------------------

PROGRAMA:

Imports System
Imports System.IO
Imports System.Collections

Module Module1
    Dim Vector(15500) As String
    Dim regV As Short
    Dim nombre As String
    Dim a As Short

    Sub Main()
        Console.WriteLine("Nombre del archivo:")
        nombre = Console.ReadLine
        leer()
        ordenar()
        grabar()
    End Sub

    Sub leer()
        Dim objReader As New StreamReader(nombre)
        Dim sLine As String = ""
        Dim arrText As New ArrayList()
        regV = -1
        Do While Not sLine Is Nothing
            sLine = objReader.ReadLine
            If sLine <> Nothing Then
                regV += 1
                Vector(regV) = sLine
            End If
        Loop
        objReader.Close()
    End Sub

    Sub grabar()
        Dim objWriter As New StreamWriter(nombre)
        For a = 0 To regV
            objWriter.WriteLine(Vector(a))
        Next
        objWriter.Close()
    End Sub

    Sub ordenar()
        Dim b As Short
        Dim extra As String
        Console.WriteLine()
        Console.WriteLine("Ordenando")
        For a = 0 To regV - 1
            For b = a + 1 To regV
                If Mid(Vector(a), 9, 4) > Mid(Vector(b), 9, 4) Then
                    extra = Vector(a)
                    Vector(a) = Vector(b)
                    Vector(b) = extra
                End If
            Next b
        Next a
    End Sub

End Module

                                           MARCELO MONTAGNA