<!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">
En el codigo:        ReadLn(f, s);     // aca da el error<b><br>
<br>
dentro del ide da el error:<br>
 Project psfsvr raised exception class RunError(103)<br>
<br>
fuera del ide:<br>
"File not open"<br>
<br>
uso lazarus 0.9.28 con fpc 2.2.4 revision 21921<br>
<br>
el tema es que cada vez que se usa la función las variables son nuevas
y los archivos existen...<br>
<br>
debe ser un bug...<br>
<br>
este es el codigo que da error:<br>
</b><br>
procedure Tmain.a_scandatosExecute(Sender: TObject);<br>
var<br>
   k, copias: integer;<br>
   f: TextFile;<br>
   job, equipo, recurso,<br>
   archivo_formulario, archivo_datos,<br>
   tarea, impresora, formulario, sql, ts, mensaje: string;<br>
   yy, mm, dd, hh, mi, ss, ms : word;<br>
   p: TProcess;<br>
<br>
<br>
   Function get_firstline(fname: string): string;<br>
   var<br>
     f: TextFile;<br>
     s: String;<br>
   begin<br>
     if FileExists(fname) then<br>
     begin<br>
       AssignFile(f, fname);<br>
       Reset(f);<br>
<br>
       ReadLn(f, s);     // aca da el error<br>
<br>
       result:=s;<br>
       CloseFile(f);<br>
     end;<br>
   end;<br>
<br>
<br>
begin<br>
  t_scan.Enabled:=false;<br>
  mem_servidor.Append('Buscando nuevas tareas de impresión...
('+inttostr(t_scan.Interval div 1000)+' segs)');<br>
 
sl_cola:=FindFile(sl_props.values['rutadatos']+'\*.'+sl_props.values['extdatos']);<br>
  mem_servidor.Append(sl_cola[0]);<br>
  for k:=0 to sl_cola.Count-1 do<br>
  begin<br>
    if FileExists(sl_cola[k]) then<br>
    begin<br>
      <br>
      job:=get_firstline(sl_cola[k]);<br>
<br>
      archivo_datos:=ExtractFileName(sl_cola[k]);<br>
      if copy(job, 1, 4) = '^job' then<br>
      begin<br>
        tarea:=copy(job, 6, 6);<br>
        impresora:=copy(job, 12, 2);<br>
      <br>
<br>
<br>
<br>
<br>
<b>sin embargo este codigo no da error:</b><br>
<br>
program Project1;<br>
<br>
{$mode objfpc}{$H+}<br>
<br>
uses<br>
  {$IFDEF UNIX}{$IFDEF UseCThreads}<br>
  cthreads,<br>
  {$ENDIF}{$ENDIF}<br>
  Classes, sysutils<br>
  { you can add units after this };<br>
<br>
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}<br>
<br>
 Function get_firstline(fname: string): string;<br>
   var<br>
     f: TextFile;<br>
     s: String;<br>
   begin<br>
     if FileExists(fname) then<br>
     begin<br>
       AssignFile(f, fname);<br>
       Reset(f);<br>
       ReadLn(f, s);<br>
       CloseFile(f);<br>
       result:=s;<br>
     end;<br>
   end;<br>
var<br>
  f1, f2, f3: string;<br>
<br>
begin<br>
  f1:='G:\sis\pascal\lazarus\PServer\RTO01123.DAT';<br>
  writeln(get_firstline(f1));<br>
<br>
  f2:='G:\sis\pascal\lazarus\PServer\RTO01188.DAT';<br>
  writeln(get_firstline(f2));<br>
<br>
  f3:='G:\sis\pascal\lazarus\PServer\RTO01199.DAT';<br>
  writeln(get_firstline(f3));<br>
<br>
  readln;<br>
<br>
end.<br>
<br>
<br>
</body>
</html>