Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   IOResult 64 bit (https://www.clubdelphi.com/foros/showthread.php?t=77195)

jonmendi 02-01-2012 09:26:26

IOResult 64 bit
 
Hola y Feliz año nuevo a tod@s!!

Tengo un sistema de 6 pc-s que se conectan a un "servidor" y escriben y leen en el mismo una seríe de ficheros. Uso el siguiente código:
Código:

function ComprobarUnidad(AUnidad: String): Boolean;
var
      f: Text;
begin
ComprobarUnidad := False;

 
Assign(f, AUnidad + '\flag.txt');
{$I-}
  Rewrite(f);
{$I+}
if IOResult = 0 then begin
  {$I-}
        Writeln(f, 'OK');
  {$I+}
  ComprobarUnidad := IOResult = 0;
  Close(f);
end;
end;

Un poco rudimentario, pero funciona ;-).

Tanto el servidor como los pc-s que se conectan tiene XP. Uso (aún) Delphi7.
El asunto es que quiero (más bien mi jefe) ponerle al servidor un windows7 a 64 bits. Y es aquí donde empiezan mis problemas.
Si el fichero flag.txt no existe no hay ningún problema, pero si existe este mismo código no funciona, ya que IOResult <> 0. Pero si hago un
Código:

showmessage(inttostr(IOResult))
esto sí que me daba un = 0. Esto me mosqueaba, con lo que pruebo el siguiente código:
Código:


function ComprobarUnidad(AUnidad: String): Boolean;
var
        f: Text;
resultado64Bits :Int64;
begin
  ComprobarUnidad := False;

 
Assign(f, AUnidad + '\flag.txt');
{$I-}
    Rewrite(f);
{$I+}
resultado64Bits := IOResult;
if IOResult = 0 then begin
    {$I-}
          Writeln(f, 'OK');
    {$I+}
    ComprobarUnidad := IOResult = 0;
    Close(f);
  end;
end;

Si el archivo no existe
Código:

showmessage(inttostr(resultado64Bits)) = 0
pero si existe
Código:

showmessage(inttostr(resultado64Bits)) = 5
¿Este 5 que significa? Mirando en los códigos de error,
http://www.freepascal.org/docs-html/.../ioresult.html me dice que es un acceso denegado. Pero el usuario que lo crea tiene control total en el "servidor".

¿Alguien tiene un sistema mixto 32 / 64 bits?¿Alguien ha tenido problemas parecidos al pasar a 64bits?
Muchas gracias!


La franja horaria es GMT +2. Ahora son las 02:47:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi