<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hola a todos,<br>
<br>
Siguiendo con mis problemas con los archivos, estoy intentando que
me abra una archivo cuando exista y que lo cree cuando no existe.<br>
<br>
Tengo el ejemplo de abajo, y estoy observando que SIEMPRE me lo crea
y me graba el registro.<br>
<br>
Supongo que sabreis porque me pasa esto, supongo que estaré haciendo
alguna burrada que no soy capaz de ver.<br>
<br>
Muchas gracias.<br>
<br>
Juan Antonio.<br>
<br>
<br>
<br>
<font face="Courier New, Courier, monospace">#include <iostream><br>
#include <stdio.h><br>
#include <stdlib.h><br>
<br>
using namespace std;<br>
<br>
int RutinaFichero()<br>
{<br>
char rDatos[]="elemento primero";<br>
char fichero[]="s:\\archivo.dat";<br>
FILE *fDatos;<br>
<br>
fDatos=fopen(fichero,"rb+"); // Lectura y escritura
binario...no lo crea<br>
if(!fDatos) // Si no existe...<br>
{<br>
fDatos=fopen(fichero,"wb+"); // Crea el archivo si no existe.<br>
fwrite(&rDatos,sizeof(rDatos),1,fDatos);<br>
cout << "grabo el registro"<< endl; // las dos
veces pasa por aqui...<br>
}<br>
fseek(fDatos, 1, SEEK_SET);<br>
fread(&rDatos,sizeof(rDatos),1,fDatos);<br>
fclose(fDatos);<br>
return 0;<br>
}<br>
int main()<br>
{<br>
RutinaFichero();<br>
RutinaFichero();<br>
<br>
return 0;<br>
}</font><br>
</body>
</html>