elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Método File.ReadLines (Visual Basic 2013) (Solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Método File.ReadLines (Visual Basic 2013) (Solucionado)  (Leído 4,732 veces)
Tazmania40

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Método File.ReadLines (Visual Basic 2013) (Solucionado)
« en: 22 Junio 2016, 15:33 pm »

Buenas, ya estoy acabando mi proyecto y me encuentro con este problema

"ReadLines no es miembro de System.IO.File"

Se que son las Net.Framework porque el proyecto lo tengo con 3.5, pero no quiero cambiarlo a 4.0 o 4.5 (ya los próximos utilizaré esas versiones), pero en este proyecto deseo poder utilizar el programa en equipos con Windows XP.

Hay alguna otra forma de leer filas en los archivos, si tengo que utilizar otra importación o cualquier otro comando que lea filas y lo guarde en un array de texto. Tal y como aparece en el siguiente código, que repito funciona a partir de la versión Net Framework 4.0, pero yo lo requiero para la Net Framework 3.5 (en Windows Form).

Gracias y saludos


Código
  1. Imports System.IO
  2.  
  3. Dim Valor(4) As String
  4. For A = 0 To 4
  5.     Valor(A) = File.ReadLines(ARCHIVOC)(A)           'Leer una sola línea
  6. Next A


« Última modificación: 22 Junio 2016, 18:41 pm por Tazmania40 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Método File.ReadLines (Visual Basic 2013)
« Respuesta #1 en: 22 Junio 2016, 15:40 pm »

Echa un ojo aquí: https://msdn.microsoft.com/es-es/library/system.io.streamreader.readline(v=vs.110).aspx


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Método File.ReadLines (Visual Basic 2013)
« Respuesta #2 en: 22 Junio 2016, 16:49 pm »

Puedes hacerlo de la siguiente manera:

Código
  1. Dim textLines As New List(Of String)
  2.  
  3. Using sr As New StreamReader(File.OpenRead("Archivo.txt"))
  4.    For count As Integer = 0 To 4
  5.        textLines.Add(sr.ReadLine())
  6.    Next count
  7. End Using

PD: Si lo prefieres puedes usar un Array de tamaño fijo, como en tu ejemplo.

Saludos
En línea



Tazmania40

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Método File.ReadLines (Visual Basic 2013)
« Respuesta #3 en: 22 Junio 2016, 18:36 pm »

Muchas gracias a los dos, funciona la perfección. Voy a implementarlo al programa principal. Este es todo el código del ejemplo para Net.Framework 3.5

Código
  1. Imports System.IO
  2.  
  3. Public ARCHIVOC As String = Application.StartupPath & "\DisGlobosCla.dat"
  4. Public TopClasi(4) As String
  5.  
  6. Dim A As Integer
  7. Using SR As New StreamReader(File.OpenRead(ARCHIVOC))
  8.     For A = 0 To 4
  9.          TopClasi(A) = SR.ReadLine()
  10.     Next A
  11. End Using

A ver si cuando acabe me pongo a mirar el tema de ficheros, puesto que en este juego he creado un archivo de clasificación con un archivo plano (aunque he puesto extensión dat) y lo he cifrado para que no se entienda y no hagamos trampas cambiando valores, pero me imagino que lo suyo es poner un archivo binario como hacía con vb6.

Saludos
« Última modificación: 22 Junio 2016, 18:41 pm por Tazmania40 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Método File.ReadLines (Visual Basic 2013)
« Respuesta #4 en: 23 Junio 2016, 06:13 am »

A ver si cuando acabe me pongo a mirar el tema de ficheros, puesto que en este juego he creado un archivo de clasificación con un archivo plano (aunque he puesto extensión dat) y lo he cifrado para que no se entienda y no hagamos trampas cambiando valores, pero me imagino que lo suyo es poner un archivo binario como hacía con vb6.

En un lenguaje de alto nivel o abstracción como VB.NET, no necesitas crear un archivo de texto; si tu intención es crear un archivo de configuración de parámetros usados por tu aplicación, entonces .NET Framework te proporciona una manera guiada de llevarlo a cabo: la infraestructura My.Settings -esto creará un archivo de configuración intermediario, pero practicamente todo estará administrado por la aplicación, tú solo tienes que crear las propiedades (desde la pestaña de configuración de tu proyecto), y atribuirle un valor, y cargarlo cuando necesites usar dicho valor.

Si aun así prefieres utilizar otro tipo de archivo intermediario sobre el que poder tener más control, entonces podrías utilizar la serialización binaria, serialización XML, o serialización JS que proporciona .NET Framework. Lee sobre la class BinaryFormatter, XmlSerializer, o JavaScriptSerializer. Obviamente la serialización binaria creará como resultado un archivo binario ilegible al ojo humano, pero yo te recomendaría la serialización XML por la versatilidad que ofrece este tipo de estructura y lo bien integrado que está en .NET, además, para "ocultar" algo siempre puedes utilizar los métodos de Base64 o algoritmos de Hashing o cifrado que puedes encontrar en la librería de classes de .NET.

Saludos.
« Última modificación: 23 Junio 2016, 06:20 am por Eleкtro » En línea



Tazmania40

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Método File.ReadLines (Visual Basic 2013) (Solucionado)
« Respuesta #5 en: 23 Junio 2016, 13:15 pm »

Gracias Elektro, como siempre das muchos temas para mirar. Yo soy lento pero constante, además como dije programo por hobby (aunque alguna base de datos con vb he realizado para la empresa). Tengo algunos temarios que todavía tengo que revisar y actualizarme de vb6 a vb.net y el tema de ficheros es uno. Gracias por los consejos y miraré varias formas de poder crear ficheros.

De momento el procedimiento quedó de la siguiente manera y cumple su función, que no sea legible el archivo y si lo tocas porque no coincide las búsquedas que he realizado se vuelve a crear fichero con los parámetros por defecto. Paso código, por otro lado copié unas funciones de CIFRADO y DESCIFRADO que saqué de aqui también.

Código
  1. Imports System.IO
  2.  
  3. Public ARCHIVOC As String = Application.StartupPath & "\DisGlobosCla.dat"
  4. Public TopClasi(4) As String
  5. Public TextoC As String  ' = Aqui asignamos el Texto Cifrado
  6. Public TextoSC As String  ' = Asignamos el texto sin cifrar (para valores por defecto)
  7.  
  8. Public Sub LeerArchivo_PasoArray()
  9.        Try
  10.            '1º Comprueba si el archivo no existe para crearlo
  11.            If Not My.Computer.FileSystem.FileExists(ARCHIVOC) Then
  12.                My.Computer.FileSystem.WriteAllText(ARCHIVOC, TextoC, False)
  13.            End If
  14.            '2º Desciframos el archivo, asignamos y volvemos a transladar al archivo
  15.            TextoSC = My.Computer.FileSystem.ReadAllText(ARCHIVOC)  'Lee todo archivo
  16.            TextoSC = DESCIFRA(TextoSC)
  17.            My.Computer.FileSystem.WriteAllText(ARCHIVOC, TextoSC, False)
  18.            '3º Lee archivo de texto (sin cifrar) y lo pasa a los Arrays
  19.            Using SR As New StreamReader(File.OpenRead(ARCHIVOC))
  20.                For A As Integer = 0 To 4
  21.                    TopClasi(A) = SR.ReadLine()                     'Leer una sola línea                    
  22.                Next A
  23.            End Using
  24.            '4º Vuelve a cifrar archivo y lo guarda
  25.            TextoC = CIFRA(TextoSC)
  26.            My.Computer.FileSystem.WriteAllText(ARCHIVOC, TextoC, False)
  27.        Catch ex As Exception
  28.            MsgBox(ex.Message, 16, "Error Archivo Clasificación")
  29.        End Try
  30. End Sub

Puede que me repita un poco. El programa descifra el archivo, lo pasa a los array mediante filas para saber el orden de clasificación (mediante otro procedimiento ordeno y escribo), lo vuelvo a cifrar y guardar en el archivo.

Saludetes
« Última modificación: 23 Junio 2016, 13:28 pm por Tazmania40 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines