Hola julyus.
Yo tampoco tengo claro cuál es el problema y claro, no sé cuál es el propósito de la función.
Reduje un poco el código respetando la lógica de la función y de este modo no obtengo ningún tipo de error. Pero por supuesto no se si hace lo que tiene que hacer por que desconozco 'que es lo que tiene que hacer'.
Código Delphi
[-]
function leaLinea(var F: TextFile; var Texto: string): boolean;
begin
while not Eof(f) or (Trim(texto) = '')or(Copy(Trim(Texto),1,2)= '::') do
Readln(F, Texto);
Texto:= StringReplace(Texto, #9, ' ',[rfReplaceAll]);
Texto:= Trim(Texto);
Result:= Copy(Texto, 1, 1) = '[';
if Eof(F) then Texto:= 'KS_FIN_DE_ARCHIVO';
end;
Llamada de prueba:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
F: TextFile;
s: string;
begin
AssignFile(F, 'C:\TEMPORAL\PRUEBA.TXT');
Reset(F);
try
if LeaLinea(F, S) then
ShowMessage('True: ' + s)
else
ShowMessage('False:' + s);
finally
FileClose(F);
end;
end;
Si nos pusieras que pretendes que haga la función sería más sencillo orientarte.
Edito: No utilizé este código en absoluto:
Código Delphi
[-]
type
TextFile = ^Text; esto lo encontre en internet y slucionaba el error
cbkParmsCrystal = procedure(var posStoredProcs, posCrystalProcs: integer
; titulo: string) of object;
cbkConfigFile = function(var f: TextFile; var st: string): integer of object;
Saludos.