Le 31/10/2012 15:13, Bruce a écrit : > On Wed, 2012-10-31 at 14:02 +0100, Benoît Minisini wrote: >> Le 31/10/2012 06:04, Bruce a écrit : >>> I have a library which contains classes to analyse horse trial times. >>> These classes rely on some files which contain some static data about >>> the various analyses, these files are all called AbcZyx.meta where >>> AbcXyz is the name of the relevant class (note the mixed case in both). >>> When the first instance of any of these classes is created, it reads >>> that associated file and sets up the static data. >>> >>> Somehow lately a strange thing has happened, one of the classes when it >>> loads has it's name converted to lower case. All the others preserve >>> the case of the class name. >>> >>> I've put the following trace into the early methods for some of the >>> projects that use this library: >>> Dim wkclass As Class >>> For Each wkclass In Classes >>> If Not IsNull(wkclass.Parent) Then >>> If wkclass.Parent.Name = "BaseBO" Then Print wkclass.Name >>> Endif >>> Next >>> >>> and generally this is what I get vs the "real" class name: >>> ClassNameloaded ClassNamereal >>> --------------- -------------- >>> TrialSpeeds TrialSpeeds >>> TrialSpeed1 TrialSpeed1 >>> TrialSpeed3 TrialSpeed3 >>> TrialSpeed2 TrialSpeed2 >>> TrackMap TrackMap >>> TrackAltMap TrackAltMap >>> Horse Horse >>> trackname TrackName <------???? >>> Jockey Jockey >>> Track Track >>> >>> So all of them, except TrackName have the expected class name. >>> >>> and when it tries to load the file via >>> Dim sFilename as String >>> Dim hMetaFile as File >>> sFileName=Object.Class(Me).Name&".meta" >>> Try hMetafile = Open $templatepath &/ sFileName For Input >>> etc >>> it fails, because of the case mismatching of the names. >>> >>> I have searched every file in the library project and all of the client >>> projects and can not find any instance of the string "trackname". I >>> have cleaned, recompiled etc etc each of these projects and this fail >>> still occurs. >>> >>> Is there something special about a class called "TrackName"? It only >>> ever happens for that class. >>> >>> Totally bewildered? >>> Bruce >>> >> >> There must be an occurence of "trackname" in lower case somewhere in >> your source code. The name of the class is the first name encountered by >> the interpreter. >> >> Regards, >> > That was my first thought too. But when I mean "searched every file" I > mean as in 'grep -r trackname' in both the client projects and the > library I get no result, not even in any of the binary files. > > What is even stranger, I tried to create a demo of this problem and the > class names are all correct. Then I renamed the class in the library to > "TrackNames" and everything works. Everywhere (well after a few > corrections and recompiles that is.) > > Finally I renamed it back to TrackName and the problem reappears, but > only in the original client projects, not in the "new" project. Which > gets us back to "There must be an occurence of "trackname" in lower case > somewhere in your source code." > > But according to grep (and the search form) there isn't. No code, no > strings, no comments. > > I am going to go with using the new name (Tracknames) and rebuild > everything that uses the library, but this is "weird". > > > ...Uh oh, hang on.. > > I just reread that "The name of the class is the first name encountered > by the interpreter." bit. > > Maybe some other component/library used by these clients has a > "trackname" symbol for something. hmmmm. > > be-back-tomorrow > Bruce >
Maybe the simpler would be naming your ".meta" file in lower case? -- Benoît Minisini ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user