Título: Problema en c# con lectura y escritura en un archivo de texto Publicado por: Andesat en 3 Abril 2015, 20:54 pm Sucede que he estado aprendiendo c# y estoy dando apenas los primeros pasos. Buscando por ahí me encontre con un ejercicio que me parecía sencillo pero me he estancado :-[ y no estoy muy seguro de como resolverlo.
El ejercicio consistía en establecer un entero como contador, leer un documento de texto y copiar el contenido de este dentro de otro documento de texto, por cada quince caracteres copiados el contador disminuye en uno y al llegar a cero la copia se detiene durante cinco segundos. Ahora viene en donde me da problemas. Una vez terminados los cinco segundos, el contador vuelve al valor original continua la copia de texto y si esta no se terminó, debe retomarla desde donde quedó la última vez y seguir copiado hasta que el contador llegue a cero nuevamente o hasta que termine de copiar, lo que suceda primero ypor ultimo avisar si la copia terminó. No se como hacer para que empiece a copiar desde donde quedó y la verdad no quisiera dejar esto sin hacer despues de haberme interesado. Estoy usando c# 5.0 en visual studio 2012. Agradecería la ayuda ;D Título: Re: Problema en c# con lectura y escritura en un archivo de texto Publicado por: DarK_FirefoX en 3 Abril 2015, 21:31 pm Creo que si pones el código de lo que tienes hecho te podríamos ayudar más. Porque así me vienen varias cosas a la mente, pero sabiendo lo que tienes hecho te podría ayudar de una manera más concisa
Salu2s Título: Re: Problema en c# con lectura y escritura en un archivo de texto Publicado por: Andesat en 4 Abril 2015, 00:13 am Claro!
Disculpa la demora es que hubo un apagón. Código
Esto es lo que intenté hacer al final pero no me funcionó Título: Re: Problema en c# con lectura y escritura en un archivo de texto Publicado por: Eleкtro en 4 Abril 2015, 01:11 am No vas del todo mal encaminado, aunque también podrías hacerlo con una pila de caracteres.
Te muestro una posible solución siguiendo el enfoque que le has dado, puedes trasladarlo a tu aplicación de consola. VB.Net: Código
Traducción online a C#: Código
Saludos Título: Re: Problema en c# con lectura y escritura en un archivo de texto Publicado por: DarK_FirefoX en 4 Abril 2015, 02:59 am Bueno, siguiendo de acuerdo al código que ya escribiste, te voy a tratar de explicar lo que puedes hacer.
Lo que tenías está bastante bien. Verás en el siguiente código, una manera diferente de usar los StreamReadery StreamWriter, te explico. Utilizando el using, garantizamos que el stream se cree y a la vez dentro del ámbito del using este abierto, luego que se salga de ese ámbito, el stream automáticamente se cierra. Gracias a esta funcionalidad podemos hacer uso del método Peek() que te devuelve el próximo caracter disponible (sin consumirlo), este método devuelve un int, entonces devuelve -1 si no hay chars para leer por lo tanto utilizamos eso para controlar el ciclo, ahora, este puntero es modificado por varios métodos de la clase StreamReader. Como por ejemplo el que utilicé: ReadBlock(). El cuál recibe varios parámetros, un array de char (char[]), el cuál va a servir como un buffer para ir almacenando en este caso los 15 chars leídos (debes declararlo e iniciarlo previamente como verás en el código. El otro parámetro es la posición en cual va a comenzar a copiar los chars en el buffer, en este caso 0, para que sea desde el principio. Y por último, la cantidad de chars a leer del fichero, 15 en este caso. Luego la otra linea se ejecuta sobre el StreamWriter, es el método Write(), el cual tiene varias sobrecargas (varias definiciones del método donde cambian los tipos de parámetros y/o la cantidad). En particular tiene una que recibe un array de char (char[]), o sea un buffer. Por lo tanto le pasamos el buffer que teníamos anteriormente y el escribirá en el StreamWriter los chars en ese array. Por ultimo, tienes que añadir a los usings de tu aplicación: Código
para poder hacer uso del método estático Código
Donde 5000 significan los 5s, pues el método recibe como parámetro un int que son la cantidad de milisegundos que te va a suspender el hilo actual (esperar). Aquí te dejo el código: Código
Espero lo hayas entendido todo, trate de explicarte lo mejor posible. Dinos como te funcionó. Saludos Título: Re: Problema en c# con lectura y escritura en un archivo de texto Publicado por: Andesat en 4 Abril 2015, 04:50 am Gracias a todos por tomarse el tiempo para responder a mi pregunta!
DarK_FirefoX, todo esta muy bien explicado, y funciona perfecto para lo que estoy haciendo. He aprendido algo nuevo hoy, muchas gracias. Saludos. Título: Re: Problema en c# con lectura y escritura en un archivo de texto Publicado por: DarK_FirefoX en 4 Abril 2015, 14:52 pm Gracias a todos por tomarse el tiempo para responder a mi pregunta! DarK_FirefoX, todo esta muy bien explicado, y funciona perfecto para lo que estoy haciendo. He aprendido algo nuevo hoy, muchas gracias. Saludos. Un placer!, que bueno que todo se haya entendido. Cualquier otra duda, ya sabes ;) Salu2s |