Итак:
- Код: Выделить всё
- procedure TEditForm.FileNameEdit1AcceptFileName(Sender: TObject;
 var Value: String);
 var LocFS:TFileStream;
 begin
 ShowMessage(Value);
 LocFS.Create(Value,fmOpenRead);
- Код: Выделить всё
- constructor TFileStream.Create(const AFileName: string; Mode: Word);
 begin
 FFileName:=AFileName;
- Код: Выделить всё
- Procedure fpc_AnsiStr_Decr_Ref (Var S : Pointer); [Public,Alias:'FPC_ANSISTR_DECR_REF']; compilerproc; nostackframe; assembler;
 asm
 cmpl $0,(%eax)
 jne .Ldecr_ref_continue
 ret
 .Ldecr_ref_continue:
 // Temps allocated between ebp-24 and ebp+0
 subl $4,%esp
 // Var S located in register
 // Var l located in register
 movl %eax,(%esp)
 // [101] l:=@PAnsiRec(S-FirstOff)^.Ref;
 movl (%eax),%edx
 subl $8,%edx
 // [102] If l^<0 then exit;
 cmpl $0,(%edx)
value получаем через TFilenameEdit, value='D:\RCIMAGE.ISO'.
Что бы это значило?
ВОобще, задача тривиальная: получить размер файла по его имени. Причем - не важно, открыт ли он сейчас кем-нибудь или нет, хочу открывать в RO/DenyNone только для определения размера. Со стримами начал возиться потому что reset(file) вылетает независимо от filemode в ситуации, когда файл кем-то открыт.
Имя, переданное в value, реальное. Файл существует, размер около 10М, не открыт никем вообще, лежит в корне fat32-диска. КОнкретно с ним связка assign/reset работала нормально.
Добавлено спустя 1 минуту 30 секунд:
В крайнем, конечно, случае, воспользуюсь findfirst, но это же изврат









