Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-01-2012
jonmendi jonmendi is offline
Miembro
 
Registrado: dic 2004
Posts: 110
Poder: 20
jonmendi Va por buen camino
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!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:22:40.


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
Copyright 1996-2007 Club Delphi