Fecha y hora actual: Sab 19 May, 2012 21:02 pm
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Escribir en ficheros

Responder al Tema

Índice del Foro > C, C#, Visual C++ > Escribir en ficheros

Autor Mensaje
Tururu_ru



Registrado: 11 Ene 2012
Mensajes: 4

Mensaje Publicado: Mie 01 Feb, 2012 19:36 pm

Título del mensaje: Escribir en ficheros

Responder citando

Hola, estoy haciendo un programa en c++ y una de las cosas que quiero hacer es la siguiente:
Imaginaos que hay 5 Threads funcionando al mismo tiempo, y cada uno de ellos puede escribir cuando quiera en un fichero llamado "fichero.txt". Al principio de la ejecución, cada Thread escribe en ese fichero su nombre y su id en distintas filas, por ejemplo:
nombre=Thread1
id=1
Por lo que en un momento de la ejecución, si todos los Thread han escrito por lo menos una vez en el fichero, el archivo quedaría así:
nombre=Thread1
id=1
nombre=Thread2
id=2
nombre=Thread3
id=3
nombre=Thread4
id=4
nombre=Thread5
id=5
Ahora, si durante la ejecución, cada Thread quiere leer su nombre y su id para cambiarlo, ¿cómo puedo hacerlo sin borrar lo que ha escrito otro Thread y reemplazar sólo lo que ha escrito este Thread anteriormente por lo nuevo que quiere escribir? Por ejemplo, si ahora el Thread2 quiere escribir su nombre como Thread6 y su id por 6, tendría que quedar así:
nombre=Thread1
id=1
nombre=Thread6
id=6
nombre=Thread3
id=3
nombre=Thread4
id=4
nombre=Thread5
id=5
Yo he hecho algo así, pero no me funciona:
Para escribir en el fichero (nombreThread contiene el nombre y idThread contiene el id):
fstream f1;
f1.open("fichero.txt", ios::out | ios::app);
sprintf(nombre, "%s%d","nombre=", nombreThread);
sprintf(nombre1, "%s%d","id=", idThread);
// si es el Thread1 el que escribe, escribirá en las dos primeras filas
// si es el Thread2, saltará dos saltos de linea y escribirá en las siguientes
// y así sucesivamente
for(int p=1; p<idThread; p++) {
f1.getline(text, '\n');
f1.getline(text, '\n');
}
f1.write(nombre, 14);
f1 << endl;
f1.write(nombre1, 9);
f1 << endl;
f1.close();
Alguien me podría ayudar? Gracias!!

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Ficheros (Pascal)

Evertt Programación en general 0 Mie 16 May, 2012 21:41 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Problema al escribir en un fichero con la clase...

sergiosk8zgz Java 2 Vie 20 Ene, 2012 15:17 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ficheros de texto con formato SubRip

sergiosk8zgz Java 1 Dom 15 Ene, 2012 04:00 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

escribir mi nombre en asterisco

Sylvain Wilkens C, C#, Visual C++ 2 Lun 14 Nov, 2011 09:31 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

Descarga de ficheros modificados en site a trav...

RMA SQL Server 0 Mar 25 Oct, 2011 17:56 pm Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,