<!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>