Hola soy nuevo a la lista y me he topado con un inonveniente:
1) cargo el TStringList sl_cola con el path de unos archivos
sl_cola:=FindFile(sl_props.values['rutadatos']+'\*.'+sl_props.values['extdatos']);2) a cada archivo tengo que leer la 1ra linea:
for k:=0 to sl_cola.Count-1 do
begin
if FileExists(sl_cola[k]) then
begin
job:=get_firstline(sl_cola[k]);
archivo_datos:=ExtractFileName(sl_cola[k]);
if copy(job, 1, 4) = '^job' then
begin
tarea:=copy(job, 6, 6);
impresora:=copy(job, 12, 2);3) la funcion get_firstline() es:
Function get_firstline(fname: string): string;
var
f: TextFile;
s: String;
begin
if FileExists(fname) then
begin
{$i-}
AssignFile(f, fname);
Reset(f);
{$I+}
if IoResult=0 then
begin
ReadLn(f, s);
result:=s;
CloseFile(f);
end
end;
end;el problema es que me hace alternativamente un arhivo si y otro no.... al segundo archivo me dice error 103
la unica forma que consegui que funcione es hacer la funcion asi:
Function get_firstline(fname: string): string;
var
f: TextFile;
s: String;
fe: boolean;
begin
if FileExists(fname) then
begin
{$i-}
AssignFile(f, fname);
Reset(f);
{$I+}
if IoResult=0 then
begin
CloseFile(f);
AssignFile(f, fname);
Reset(f);
ReadLn(f, s);
result:=s;
CloseFile(f);
end
else
begin
AssignFile(f, fname);
Reset(f);
ReadLn(f, s);
result:=s;
CloseFile(f);
end;
end;
end;es decir, hacerle dos veces el reset.... es como si el closefile no funcionara bien...
alguna sugerencia?????
gracias
