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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Programación de Archivos en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programación de Archivos en C#  (Leído 3,201 veces)
Castiel

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Programación de Archivos en C#
« en: 25 Enero 2015, 03:48 am »

Hola conocedores, alguien puede socorrer a su servidor tengo un enunciado que resolver, pero no logro correrlo, me podrían comentar en que estoy bien y en que mal, les proporciono el enunciado y mi avance del código.

Lo que se pide es solicitar al usuario que capture frases y cada vez que presione la tecla Intro se almacene la línea o frases capturadas en un archivo llamado "frases.txt".
Deja de solicitar la captura de elementos cuando presione la tecla Intro sin teclear nada.
Muestra el contenido del archivo al finalizar la captura.

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9.    class Program
  10.    {
  11.        static void Main(string[] args)
  12.        {
  13.            Console.WriteLine("Escriba palabras que se guardaran en un archivo llamado <<frases.txt>>");
  14.  
  15.            //como puedo llamar aqui a las funciones Write y despues a Read, si es que Write termino
  16.            //null, para que se pueda ejecutar enseguida Read?... no se si esta bien mi codigo
  17.  
  18.  
  19.  
  20.            Console.WriteLine("Oprima una tecla para continuar...");
  21.            System.Console.ReadKey();
  22.        }
  23.    }
  24.  
  25.  
  26.    public class ListaEnlazada //inicio de lista enlazada
  27.    {
  28.  
  29.        public void Write()//inicio de write
  30.        {
  31.            StreamWriter fichero;
  32.  
  33.            string linea;
  34.            string ruta = @"C:\Windows\Temp\frases.txt";
  35.            File.CreateText(ruta);
  36.            fichero = File.CreateText(ruta);
  37.            linea = Console.ReadLine();
  38.  
  39.  
  40.            do
  41.            {            
  42.                linea = Console.ReadLine();
  43.                fichero.WriteLine(linea);
  44.            }
  45.            while (linea == null) ;
  46.  
  47.  
  48.            fichero.Close();
  49.        }//fin de write
  50.  
  51.  
  52.  
  53.        public void Read()//inicio de read
  54.        {
  55.            StreamReader fichero;
  56.            string line;
  57.            string ruta = @"C:\Windows\Temp\frases.txt";
  58.            fichero = File.OpenText(ruta);
  59.  
  60.            do
  61.            {
  62.                line = fichero.ReadLine();
  63.                if (line != null)
  64.                    Console.WriteLine(line);
  65.            } while (line != null);
  66.  
  67.  
  68.            fichero.Close();
  69.        }//fin de read
  70.  
  71.  
  72.        }//fin de lista enlazada
  73.  
  74.  
  75. }
  76.  

Espero contar con su apoyo saludos.


« Última modificación: 25 Enero 2015, 14:08 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Programación de Archivos en C#
« Respuesta #1 en: 25 Enero 2015, 14:45 pm »

En el método Read no deberías comprobar si la linea está vacía, ya que el método Write finaliza al detectar una linea vacía.

He hecho otras modificaciones:

VB.Net:
Código
  1. Module Module1
  2.  
  3.    ''' <summary>
  4.    ''' Defines the entry point of the application.
  5.    ''' </summary>
  6.    Public Sub Main()
  7.  
  8.        ListaEnlazada.Write()
  9.        ListaEnlazada.Read()
  10.        ListaEnlazada.Wait()
  11.  
  12.    End Sub
  13.  
  14. End Module
+
Código
  1. Imports System.IO
  2. Imports System.Text
  3.  
  4. Public NotInheritable Class ListaEnlazada
  5.  
  6.    Shared ReadOnly filepath As String = Path.Combine(Path.GetTempPath, "frases.txt")
  7.  
  8.    Public Shared Sub Write()
  9.  
  10.        Console.WriteLine(String.Format("Escriba palabras que se guardaran en un archivo llamado '{0}'",
  11.                                        Path.GetFileName(filepath)))
  12.  
  13.        Dim inputText As String
  14.  
  15.        Using sw As New StreamWriter(filepath, append:=False, encoding:=Encoding.Default)
  16.  
  17.            inputText = Console.ReadLine()
  18.  
  19.            Do Until String.IsNullOrEmpty(inputText)
  20.                sw.WriteLine(inputText)
  21.                inputText = Console.ReadLine()
  22.            Loop
  23.  
  24.        End Using
  25.  
  26.    End Sub
  27.  
  28.    Public Shared Sub Read()
  29.  
  30.        ' NOTA:
  31.        ' Puedes simplificar todo este bloque en una sola instrucción:
  32.        ' Console.Write(File.ReadAllText(filepath, encoding:=Encoding.Default))
  33.  
  34.        Using sr As New StreamReader(filepath, encoding:=Encoding.Default)
  35.  
  36.            Do Until sr.EndOfStream
  37.                Console.WriteLine(sr.ReadLine())
  38.            Loop
  39.  
  40.        End Using
  41.  
  42.    End Sub
  43.  
  44.    Public Shared Sub Wait()
  45.  
  46.        Console.WriteLine("Oprima una tecla para continuar...")
  47.        Console.ReadKey()
  48.  
  49.    End Sub
  50.  
  51. End Class

C#:
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.   class Program
  8.   {
  9.       /// <summary>
  10.       /// Defines the entry point of the application.
  11.       /// </summary>
  12.       static void Main(string[] args)
  13.       {
  14.        ListaEnlazada.Write();
  15.        ListaEnlazada.Read();
  16.        ListaEnlazada.Wait();
  17.       }
  18.   }
  19.  
  20. }
+
Código
  1. using Microsoft.VisualBasic;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Diagnostics;
  7. using System.IO;
  8. using System.Text;
  9.  
  10. public sealed class ListaEnlazada
  11. {
  12. static readonly string filepath = Path.Combine(Path.GetTempPath, "frases.txt");
  13.  
  14. public static void Write()
  15. {
  16. Console.WriteLine(string.Format("Escriba palabras que se guardaran en un archivo llamado '{0}'", Path.GetFileName(filepath)));
  17.  
  18. string inputText = null;
  19.  
  20. using (StreamWriter sw = new StreamWriter(filepath, append: false, encoding: Encoding.Default)) {
  21.  
  22. inputText = Console.ReadLine();
  23.  
  24. while (!(string.IsNullOrEmpty(inputText))) {
  25. sw.WriteLine(inputText);
  26. inputText = Console.ReadLine();
  27. }
  28. }
  29. }
  30.  
  31. public static void Read()
  32. {
  33. // NOTA:
  34. // Puedes simplificar todo este bloque en una sola instrucción:
  35. // Console.Write(File.ReadAllText(filepath, encoding: Encoding.Default));
  36.  
  37. using (StreamReader sr = new StreamReader(filepath, encoding: Encoding.Default)) {
  38.  
  39. while (!(sr.EndOfStream)) {
  40. Console.WriteLine(sr.ReadLine());
  41. }
  42. }
  43. }
  44.  
  45. public static void Wait()
  46. {
  47. Console.WriteLine("Oprima una tecla para continuar...");
  48. Console.ReadKey();
  49. }
  50. }
  51.  
  52. //=======================================================
  53. //Service provided by Telerik (www.telerik.com)
  54. //=======================================================

Saludos


« Última modificación: 25 Enero 2015, 14:52 pm por Eleкtro » En línea

Castiel

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Programación de Archivos en C#
« Respuesta #2 en: 26 Enero 2015, 02:04 am »

Muchas gracias por tu apoyo Elektro, que estes bien y saludos cordiales. ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programacion con archivos de procesamiento por lotes - batch - *.bat
Scripting
hacksi 2 6,013 Último mensaje 8 Diciembre 2008, 16:31 pm
por hacksi
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 8,999 Último mensaje 19 Junio 2009, 18:08 pm
por frank30
Programación batch (renombrar archivos)
Scripting
aaronezpino 4 6,418 Último mensaje 3 Febrero 2011, 23:42 pm
por leogtz
Soy nuevo en lo de la programacion - Archivos
Programación C/C++
Hiranokohta 2 1,956 Último mensaje 10 Mayo 2014, 15:50 pm
por patilanz
Duda con programación en C y archivos .txt
Programación C/C++
Emily 2 1,391 Último mensaje 24 Enero 2019, 12:38 pm
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines