This warning appears, because F can be equal to nil if TFileStream.Create raises exception. In this case youll handle exception, but not initialize your variable F. Sorry for my poor english :)
----- Original Message ----- From: "Wilfried Mestdagh" <[EMAIL PROTECTED]> To: "'Delphi-Talk Discussion List'" <[email protected]> Sent: Sunday, October 23, 2005 9:28 PM Subject: compiler warning > Hello, > > I have a compiler warning in following code 'F might not be > initialized', at the M.LoadFromStream(F); line. > > M := TMemoryStream.Create; > try > for n := 0 to FFiles.Count - 1 do begin > try > F := TFileStream.Create(FFiles[n], fmOpenRead or fmShareDenyWrite); > except > TriggerWarning('Could not open ''' + FFiles[n] + ''''); > Continue; > end; > M.LoadFromStream(F); > F.Free; > if not DeleteFile(FFiles[n]) then > TriggerWarning('Cannot delete file ''' + FFiles[n] + ''', will not transmit it.') > else > // Todo: add to database and transmit it > end; > finally > M.Free; > end; > > However unless my brain is damaged due to late hours work, it should > always be initialized because if exception occure I 'continue' the loop. > > The TriggerWarning fires an event (yeah I know DoWarning is be more > used), and FFiles is a TStringList containing filenames in a given > folder. > > What I'm trying to do is read files generated by another application, > open them, do something with it and delete it. The other application may > not change the file after I open it of course. > > Can I make the compiler happy, or make some better code to etablish this > ? > > --- > Rgds, Wilfried > http://www.mestdagh.biz > > __________________________________________________ > Delphi-Talk mailing list -> [email protected] > http://www.elists.org/mailman/listinfo/delphi-talk __________________________________________________ Delphi-Talk mailing list -> [email protected] http://www.elists.org/mailman/listinfo/delphi-talk
