3
« en: Viernes 4 de Julio de 2008, 22:58 »
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