Modificar el contenido de una linea de un archivo de texto en c#

Iniciado por nico56, 6 Enero 2010, 15:48 PM

0 Miembros y 1 Visitante están viendo este tema.

MANULOMM

utiliza un archivo XML u utilizas todos los controles y clases de acceso a datos, asi te evitaras problemas y sera como una base de datos.

Un DataSet Tipado, creas la tabla con la estrucutra y lo guardas con un metodo que tiene el dataset.
WriteToXML(string File) creo que es ese.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


raul338

Mira este codigo, tal vez te sirva, no es la forma mas efectiva de hacer lo que te dije, y ademas, le faltan metodos
Quise probar el visual studio 2010 pero me anda re lento asi que .... no es mi mejor intento ;-)

Código (csharp) [Seleccionar]

class Agenda
   {
       // Supongamos que este es el archivo de texto, separado en lineas
       string[] texto = { "PEPITO;45879684;", "JUAN;42369851;", "JOSE;47896523;" };
       Hashtable agenda = new Hashtable(); // Agenda en memoria

       public bool LeerArchivo()
       {
           if (File.Exists("agenda.txt")) {
               StreamReader sr = File.OpenText("agenda.txt");
               string linea = "";
               int medio = 0;
               while (!sr.EndOfStream)
               {
                   linea = sr.ReadLine();
                   medio = linea.IndexOf(";")
                   agenda.Add(linea.Substring(0, medio), linea.Substring(medio, linea.LastIndexOf(";", medio) - 1))
               }
               return true;
           } else
               return false;
       }
       public void LeerArray()
       {
           int medio = 0;
           foreach (string s in texto)
           {
               medio = s.IndexOf(";")
               agenda.Add(s.Substring(0, medio), s.Substring(medio, s.LastIndexOf(";", medio) - 1))
           }
       }
       public void Modificar(string nombre, string nuevoTelefono) {
           agenda[nombre] = nuevoTelefono;
       }
       public void GuardarArchivo()
       {
           StreamWriter sw = File.CreateText("archivo.txt");
           foreach (string nombre in agenda)
               sw.WriteLine(nombre + ";" + agenda[nombre] + ";");
           sw.Flush();
           sw.Close();
       }
   }



EDIT:

Cita de: MANULOMM en  6 Enero 2010, 19:59 PM
utiliza un archivo XML u utilizas todos los controles y clases de acceso a datos, asi te evitaras problemas y sera como una base de datos.

Un DataSet Tipado, creas la tabla con la estrucutra y lo guardas con un metodo que tiene el dataset.
WriteToXML(string File) creo que es ese.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia
Tambien es otra buena opcion, hay miles de formas de resolver tu problema  ;D ya sea "a mano"  o con clases del .net

seba123neo

Hola, usa archivos de acceso aleatorio para hacer eso.aca tenes un ejemplo:

VB.NET Solution for working with random files

tenes una estructura UDT y volcas todos esos datos al archivo.

casi todas las agendas simples estan realizadas asi.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

nico56

HOla de vuelta, gracias por las respuestas, al final lo pude hacer andar, lo que hice fue leer el archivo y montar todo en una lista, modificaba lo que queria, creaba un archivo temporal con el contenido de la lista y reemplazaba el temporal por el orginal.

monal


Eleкtro

#15
Cita de: monal en 12 Noviembre 2013, 05:38 AMPodrias mandarme el codigo que utilzaste?:D

¿Podrías leer las normas?.

Has revivido un tema de hace 3 años para formular una pregunta irrelevante a alguien que ni siquiera va a leer tu mensaje.

CitarÚltima vez activo:    12 Septiembre 2010, 00:57

Fíjense un poco mejor en los detalles importantes.

PD: La manipulación de texto es algo muy sencillo, en Google y en el buscador del foro encontrarás cientos de ejemplos, y aquí encontrarás algún que otro código de ayuda el cual puedes convertir online a C#: http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html

Si sigues teniendo dudas, formula una pregunta en un nuevo post.

Cierro el tema,
saludos!