AWXML: More Questions (Description, Hierarchy)

Hi,
I would like to create an AW with the AWXML and have defined dimensions, a cube and a measure folder contaning the measures etc.
1. But I have problems to bring up the description (long or short) instead the dimension value itself comes up in the query builder. Which objects and which catalog objects has to be populated exactly? I have defined attributes for long and short, they look fine on the OLAP Worksheet, but still the dim. value is presented.
2. The ordering is alphabetical, I was thinking with an attribute ORDER (DEFAULT_ORDER) I could modify it, but no effects. Which objects and catalogs have to be populated exactly?
3. The hierarchy is missing it should have a YEAR and MONTH level for example but these are not presented in the dimension list and in the conditional steps. Which objects and catalogs have to be populated exactly?
4. In the documentation the DIM_HIERARCHIES is a valueset in the create AW it is a relation. Just a comment.
Important thing: I would just create the AW with the AWXML but loaded will the AW from a another AW, so no relational mapping is necessary!
Any ideas and comments would be appreciated.
Many thanks,
Heiko

It sounds like you might have the wrong doc. Which version of Analytic Workspace Manager (AWM) are you using and which manual? If you are using the hybrid version of AWM (10.1.0.3.OA), then you should have the OLAP Application Developer’s Guide B10333-03 (September 2004), which is the last time of documenting the creation of objects by hand.
About your questions... If you are trying to build a standard form analytic workspace (AW) by hand, it’s very complex. The new extension classes are not documented by definition. You should use the OLAP Analytic Workspace API (AWXML). Mapping is inconsequential. The real issue is getting the metadata defined correctly.
This changes once AWM2 releases. Here is some information about its description attributes:
BI Beans (QueryBuilder and CalcBuilder), Discoverer OLAP, and the Spreadsheet Add-In primarily use the Long Description attributes. If a dimension doesn't have this attribute, they will use dimension members (even if you have Short Description attributes). Spreadsheet Add-In uses Short Description attributes for the across edge, but end-users can change this behavior and use long descriptions instead. That is the only place that short descriptions are used.
By the way, it now looks like AWM2 will release around Feb 18th. The required RDBMS 10.1.0.4.0 patch set has been pushed back a couple weeks.

Similar Messages

  • The "Measures" dimension contains more than one hierarchy... Collation issue

    It appears that an Excel query pased through to SSAS has a "measures" with lowercase "m" when analysis services expects an uppercase "M" so it should look like "Measures". Is there a fix in excel to allow
    the correct passing of "Measures" member name to the cube?
    BTW, I have NO Calculations in the cube.
    In excel 2013 when I pivot with a pivot table connected to a case sensitive collation (non default config)
    cube and perform a filter by "Keep only Selected Items" I get the error "The 'Measures' dimension contains more than one hierarchy, therefore the hierarchy must be explicity specified".
    When I revert back to server wide setting to case insensitive, and I preform the exact same pivoting function it works without error. The problem appears to be that excel does not understand the server collation setting.
    When I run SQL Server Profilier I narrowed down the MDX statement run in Excel that gives me an error to this:
    with
    member measures.__XlItemPath as
    Generate(
    Ascendants([Employee].[Location Code].currentmember),
    [Employee].[Location Code].currentmember.unique_name,
    "|__XLPATHSEP__|"
    member measures.__XlSiblingCount as
    Generate(
    Ascendants([Employee].[Location Code].currentmember),
    AddCalculatedMembers([Employee].[Location Code].currentmember.siblings).count,
    "|__XLPATHSEP__|"
    member measures.__XlChildCount as
    AddCalculatedMembers([Employee].[Location Code].currentmember.children).count
    select { measures.__XlItemPath, measures.__XlSiblingCount, measures.__XlChildCount } on columns,
    [Employee].[Location Code].&[01W]
    dimension properties MEMBER_TYPE
    on rows
    from [Metrics]
    cell properties value
    Playing around with the query I discovered that if I capitalize the first letter of the "with measures" member, the statement works.
    with
    member Measures.__XlItemPath as
    Generate(
    Ascendants([Employee].[Location Code].currentmember),
    [Employee].[Location Code].currentmember.unique_name,
    "|__XLPATHSEP__|"
    member Measures.__XlSiblingCount as
    Generate(
    Ascendants([Employee].[Location Code].currentmember),
    AddCalculatedMembers([Employee].[Location Code].currentmember.siblings).count,
    "|__XLPATHSEP__|"
    member Measures.__XlChildCount as
    AddCalculatedMembers([Employee].[Location Code].currentmember.children).count
    select { measures.__XlItemPath, measures.__XlSiblingCount, measures.__XlChildCount } on columns,
    [Employee].[Location Code].&[01W]
    dimension properties MEMBER_TYPE
    on rows
    from [Metrics]
    cell properties value
    Also, I realise that I could change the collation on just the cube itself to case insenstive to get this to work, but I really don't want to do an impact analysis of running a mixed collation environment.
    So, my question is: Is there an excel fix that will allow me to run a case sensitve cube and allow me to click on filter and filter by "keep only selected items" or "Hide selected Items"? All other filtering works, it's only those two
    filtering options error for me.
    Here are the versions I'm working with:
    Excel 2013 (15.0.4535.1507) MSO(15.0.4551.1007) 32-bit Part of Microsoft Office Professional Plus 2013
    Microsoft Analysis Server Enterprise 2012 11.0.3000.0
    Any help would be appreciated. Thank you in advance!

    Hi, i assume this logic is for Dimension formula?
    If you have multiple hierarchy like ParentH1 and ParentH2 you should use FormulaH1 and FormulaH2 and not FORMULA column.
    in FORMULAH1
    [Account.H1].[Account_A] / [Account.H1].[Account_B]

  • One more question..hehe :)

    I have one more question..sorry! How do I change the information in my google search (the description). I can't find it anywhere. Thanks

    and...
    i was also wondering if it is possible to change the title of my website when i search for it @ google & yahoo. you know how when you search for anything and it has the first line of blue hyper linked text? how do i change that on my website. is it the title (the one by the blue dot) or the first page? thanks!

  • ColdFusion 11: custom serialisers. More questions than answers

    G'day:
    I am reposting this from my blog ("ColdFusion 11: custom serialisers. More questions than answers") at the suggestion of Adobe support:
    @dacCfml @ColdFusion Can you post your queries at http://t.co/8UF4uCajTC for all cfclient and mobile queries.— Anit Kumar Panda (@anitkumar85) April 29, 2014
    This particular question is not regarding <cfclient>, hence posting it on the regular forum, not on the mobile-specific one as Anit suggested. I have edited this in places to remove language that will be deemed inappropriate by the censors here. Changes I have made are in [square brackets]. The forums software here has broken some of the styling, but so be it.
    G'day:
    I've been wanting to write an article about the new custom serialiser one can have in ColdFusion 11, but having looked at it I have more questions than I have answers, so I have put it off. But, equally, I have no place to ask the questions, so I'm stymied. So I figured I'd write an article covering my initial questions. Maybe someone can answer then.
    ColdFusion 11 has added the notion of a custom serialiser a website can have (docs: "Support for pluggable serializer and deserializer"). The idea is that whilst Adobe can dictate the serialisation rules for its own data types, it cannot sensibly infer how a CFC instance might get serialised: as each CFC represents a different data "schema", there is no "one size fits all" approach to handling it. So this is where the custom serialiser comes in. Kind of. If it wasn't a bit rubbish. Here's my exploration thusfar.
    One can specify a custom serialiser by adding a setting to Application.cfc:
    component {     this.name = "serialiser01";     this.customSerializer="Serialiser"; }
    In this case the value - Serialiser - is the name of a CFC, eg:
    // Serialiser.cfccomponent {     public function canSerialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function canDeserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function serialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "SERIALISED";     }     public function deserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "DESERIALISED";     }     private function logArgs(required struct args, required string from){         var dumpFile = getDirectoryFromPath(getCurrentTemplatePath()) & "dump_#from#.html";         if (fileExists(dumpFile)){             fileDelete(dumpFile);         }         writeDump(var=args, label=from, output=dumpFile, format="html");     } }
    This CFC needs to implement four methods:
    canSerialize() - indicates whether something can be serialised by the serialiser;
    canDeserialize() - indicates whether something can be deserialised by the serialiser;
    serialize() - the function used to serialise something
    deserialize() - the function used to deserialise something
    I'm being purposely vague on those functions for a reason. I'll get to that.
    The first [issue] in the implementation here is that for the custom serialisation to work, all four of those methods must be implemented in the serisalisation CFC. So common sense would dictate that a way to enforce that would be to require the CFC to implement an interface. That's what interfaces are for. Now I know people will argue the merit of having interfaces in CFML, but I don't really give a [monkey's] about that: CFML has interfaces, and this is what they're for. So when one specifies the serialiser in Application.cfc and it doesn't fulfil the interface requirement, it should error. Right then. When one specifies the inappropriate tool for the job. What instead happens is if the functions are omitted, one will get erratic behaviour in the application, through to outright errors when ColdFusion goes to call the functions and cannot find it. EG: if I have canSerialize() but no serialize() method, CF will error when it comes to serialise something:
    JSON serialization failure: Unable to serialize to JSON.
    Reason : The method serialize was not found in component C:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/Serialiser .cfc.
    The error occurred inC:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/testBasic.c fm: line 4
    2 : o = new Basic();
    3 :
    4 : serialised = serializeJson(o);5 : writeDump([serialised]);
    6 :
    Note that the error comes when I go to serialise something, not when ColdFusion is told about the serialiser in the first place. This is just lazy/thoughtless implementation on the part of Adobe. It invites bugs, and is just sloppy.
    The second [issue] follows immediately on from this.
    Given my sample serialiser above, I then run this test code to examine some stuff:
    o = new Basic(); serialised = serializeJson(o); writeDump([serialised]); deserialised = deserializeJson(serialised); writeDump([deserialised]);
    So all I'm doing is using (de)serializeJson() as a baseline to see how the functions work. here's Basic.cfc, btw:
    component { }
    And the test output:
    array
    1
    SERIALISED
    array
    1
    DESERIALISED
    This is as one would expect. OK, so that "works". But now... you'll've noted I am logging the arguments each of the serialisation methods receives, as I got.
    Here's the arguments passed to canSerialize():
    canSerialize - struct
    1
    XML
    My reaction to that is: "[WTH]?" Why is canSerialize() being passed the string "XML" when I'm trying to serialise an object of type Basic.cfc?
    Here's the docs for canSerialize() (from the page I linked to earlier):
    CanSerialize - Returns a boolean value and takes the "Accept Type" of the request as the argument. You can return true if you want the customserialzer to serialize the data to the passed argument type.
    Again, back to "[WTH]?" What's the "Accept type" of the request? And what the hell has the request got to do with a call to serializeJson()? You might think that "Accept type" references some HTTP header or something, but there is no "Accept type" header in the HTTP spec (that I can find: "Hypertext Transfer Protocol -- HTTP/1.1: 14 Header Field Definitions"). There's an "Accept" header (in this case: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"), and other ones like "Accept-Encoding", "Accept-Language"... but none of which contain a value of "XML". Even if there was... how would it be relevant to the question as to whether a Basic.cfc instance can be serialised? Raised as bug: 3750730.
    serialize() gets more sensible arguments:
    serialize - struct
    1
    https://www.blogger.com/nullserialize - component scribble.shared.git.blogExamples.coldfusion.CF11.customerserialiser.Basic
    2
    JSON
    So the first is the object to serialise (which surely should be part of the question canSerialize() is supposed to ask, and the format to serialise to. Cool.
    canDeserialize() is passed this:
    canDeserialize - struct
    1
    JSON
    I guess it's because it's being called from deserializeJson(), so it's legit to expect the input value is indeed JSON. Fair enough. (Note: I'm not actually passing it JSON, but that's beside the point here).
    And deserialize() is passed this:
    deserialize - struct
    1
    SERIALISED
    2
    JSON
    3
    [empty string]
    The first argument is the value to work on, and the second is the type of deserialisation to do. I have no idea what the third argument is for, and it's not mentioned directly or indirectly on that docs page. So dunno what the story is there.
    The next issue isn't a code-oriented one, but an implementation one: how the hell are we expected to work with this?
    The only way to work here is for each function to have a long array of IF/ELSEIF statements which somehow identify each object type that is serialisable, and then return true from canSerialise(), or in the case of serialize(), go ahead and do the serialisation. So this means this one CFC needs to know about everything which can be serialised in the entire application. Talk about a failure in "separation of concerns".
    You know the best way of determining if an object can be seriaslised? Ask it! Don't rely on something else needing to know. This can be achieved very easily in one of two ways:
    Check to see if the object implements a "Serializable" interface, which requires a serialize() method to exist.
    Or simply take the duck-typing approach: if a CFC implements a serialize() method: it can be serialised. By calling that method. Job done.
    Either approach would work fine, keeps things nicely encapsulated, and I see merits in both. And either make far more sense than Adobe's approach. Which is like something from the "OO Failures Special Needs" class.
    Deserialisation is trickier. Because it relies on somehow working out how to deserialise() an object. I'm not sure of the best approach here, but - again - how to deserialise something should be as close to the thing needing deserialisation as possible. IE: something in the serialised data itself which can be used to bootstrap the process.
    This could simply be a matter of specifying a CFC type at a known place in the serialised data. EG: Adobe stipulates that if the serialised data is JSON, and at the top level of the JSON is a key eg: type, and the value is an extant CFC... use that CFC's deserialize() method. Or it could look for an object which contains a type and a method, or whatever. But Adobe can specify a contract there.
    The only place I see a centralised CFC being relevant here is for a mechanism for handling serialised data that is neither a ColdFusion internal type, nor identifiable as above. In this case, perhaps they could provide a mechanism for a serialisation router, which basically has a bunch of routes (if/elseifs if need be) which contains logic as to how to work out how to deserialise the data. But it should not be the actual deserialiser, it should simply have the mechanism to find out how to do it. This is actually pretty much the same in operation as the deserialize() approach in the current implementation, but it doesn't need the canDeserialize() method (it can return false at the end of the routing), and it doesn't need to know about serialising. And also it's not the main mechanism to do the deserialisation, it's just the fall back if the prescribed approach hasn't been used.
    TBH, this still sounds a bit jerry-built, and I'm open for better suggestions. This is probably a well-trod subject in other languages, so it might be worth looking at how the likes of Groovy, Ruby or even PHP (eek!) achieve this.
    There's still another issue with the current approach. And this demonstrates that the Adobe guys don't actually work with either CFML applications or even modern websites. This approach only works for a single, stand-alone website (like how we might have done in 2001). What if I'm not in the business of building websites, but I build applications such as FW/1 or ColdBox or the like? Or any sort of "helper" application. They cannot use the current Adobe implementation of the customserializer. Why? Because the serialisation code needs to be in a website-specific CFC. There's no way for Luis to implement a custom serialiser in ColdBox (for example), and then have it work for someone using ColdBox. Because it relies on either editing Application.cfc to specify a different CFC, or editing the existing customSerializer CFC. Neither of which are very good solutions. This should have been immediately apparent to the Adobe engineer(s) implementing this stuff had they actually had any experience with modern web applications (which generally aren't just a single monolithic site, but an aggregation of various other sub applications). Equally, I know it's not a case of having thought about this and [I'm just missing something], because when I asked them the other day, at first they didn't even get what I was asking, but when I clarified were just like "oh yeah... um... err... yeah, you can't do that. We'll... have to... ah yeah". This has been raised as bug 3750731.
    So I declare the intent here valid, but the implementation to be more alpha- / pre-release- quality, not release-ready.
    Still: it could be easily deprecated and rework fairly easily. I've raised this as bug 3750732.
    Or am I missing something?
    Adam

    Yes, you can easily add additional questions to the Lookup.WebClient.Questions Lookup to allow some additional choices. We have added quite a few additional choices, we have noticed that removing them once people have selected them causes some errors.
    You can also customize the required number of questions to select when each user sets them up as well as the number required to be correct to reset the password, these options are in the System Configuration settings.
    If you need multi-language versions of the questions, you will also need to modify the appropriate language resource file in the xlWebApp.war file to provide the necessary translations for the values entered into the Lookup.

  • Support for more than one hierarchy

    Is it possible to include more than one hierarchy in a Crystal Report? I have tried and am getting some unexpected results. I have two groups, each with it's own hierarchy. When I run the report, the top level hierarchy is returning "extra" summary nodes for each level below the top level.
    Let's say the hierarchy looks like this:
    USA
         East Coast
         Central
         West Coast
    When it is brought back into Crystal, it looks like:
    USA
        Central
        West Coast
        East Coast
        Central
        West Coast
    The summaries get split up between the extra summary nodes.
    It works fine if I remove the hierarchy from the second level group. It appears that Crystal doesn't handle two hierarchies correctly. Has anyone else tried this? Is the solution to use a structure for the second level group?

    hi Mike,
    you are going to have a hard time to really build what you looking for.
    I can see couple of options:
    - correct - using structure could be one of them
    - do you need to display both hierarchies in the report or could it be "enough" to show one hierarchy and use the other hierarchy nodes as a variable ?
    Ingo

  • I have some more question

    I have some more question.How can I create web.xml and check it.And
    how can check the URL patten.thanks

    write a simple Test servlet,compile it and place it in your WEB-INF\classes of your application context.configure this servlet class in your web.xml and access it thru your browser to test it all
    Regards
    padmanava

  • Presenter 7 Question Description for SCORM Interactions

    I am trying to support a client using our LMS. He is creating SCORM 2004 content with quizzes using Adobe Presenter 7. He has chosen to report question-level details for the quiz interactions. All data comes through in the LMS just fine, except for the question description. So, what you get is a list of the answers the student entered compared to the correct answer, without any identifier about what the question is that is being answered. Without the question name, text, or description, the interaction data is useless. Where in Adobe Presenter can he add the question description?  If not in Presenter, then can it be added as a tag in the quiz XML file? What should the tag be, and where should we add it? The question description text is a feature that is supported by SCORM 2004, so it should be possible to add. I have personally created tests in Lectora that populate this field in our LMS.
    Results reported from the Presenter Quiz in our LMS:
    Results reported from a Lectora Quiz in our LMS:
    Thank you!

    SG,
    If I read your question correctly, the ability to capture the results at the "question level" is going to be a Connect feature for sure.
    As with Dr. C's response indicating that Moodle & Blackboard LMSs track Presenter content, I can also tell you that Presenter content is also tracked on Docent, Knowledge Planet &  GeoLearning LMS platforms, just to name a few.
    However, just understand that although Presenter content can pass SCORM data, it's ability to communicate which selection a learner picked to answer a question is a Connect feature that most of the other LMS platforms cannot account for.
    Rob
    http://www.robrode.com/yabb/

  • Firefox 4b7 does not complete «More Answers from-» action on Formspring.me userpages; previous Firefox (3.6) was able to load more questions and answers

    Even in safe mode, Firefox 4b7 is not able to complete «More Answers from…» action on Formspring.me userpages, it just displays «loading more questions…» for a seemingly endless amount of time. (Firefox 3.6 and any other browser, such as Safari, displays «loading more questions…» for a short period of time when AJAX works, then the questions and answers are actually loaded and displayed.) In order to reproduce, load Firefox 4b7 in Safe Mode, visit www.formspring.me/krylov and click on «More Answers from Konstantin Krylov» (the bottom link). You may try any other user, www.formspring.me/teotmin or www.formspring.me/anandaya for example.

    what a waste of money sending an engineer to "fix a fault" which does not exist.  Precisely.
    In my original BE post to which Tom so helpfully responded, I began:  It seems to me that DLM is an excellent concept with a highly flawed implementation, both technically and administratively.   I think that sending out an engineer to fix an obviously flawed profile is the main example of an adminastrative flaw.  I understand (I can't remember source, maybe Tom again) that they are sometimes relaxing the requirement for a visit before reset.
    Maybe the DLM system is too keen on stability vs speed.  This will keep complaints down from many people: most users won't notice speed too much as long as it is reasonable, but will be upset if their Skype calls and browsing are being interrupted too often.  
    However, it does lead to complaints from people who notice the drops after an incidence (as in your thread that has drawn lots of interest), or who only get 50 instead of 60.  The main technical flaw is that DLM can so easily be confused by drops from loss of power, too much modem recycling, etc, and then takes so long to recover.

  • One more question.

    Hey again. I am probably going to go get my iMactoday or tomorrow. But I have one more question. I am aware that Macs are pretty much prone to viruses. But!!! When I download a version of Windows on Bootcamp, will I still have the amazing security, or will it be viruses like owning a PC? Thank you very much!

    HI,
    *"I am aware that Macs are pretty much prone to viruses."*
    Just the opposite. Windows users are the one's vulnerable to a virus.
    You will need anti virus software on the Windows partition.
    Carolyn

  • One more question about "snap to" points in audio objects

    sorry, one more question people.............. is there a way to set a "snap to" point in an audio region? Can I have logic set a point, or an "anchor" within an audio region that would coincide with the cursor. Once I get the cursor to a bar or a beat, is there a command that would allow a "snap to" point to be created in an audio object? That way I could clean up any "noise" or "chatter" at the beginning of an audio bounce or any audio object, and still have no problem pasting it all over my arrangement. I'm sure it's in here somewhere, but can't find it in the manual..
    thanks again!!!

    The anchor point in an audio region can be moved to wherever you want it to be. Let's say you recorded a loud piano bass note and afterwards you trimmed the file so that the attack of this sound happens right at the beginning of the audio region. Your anchor point will now coincide with the begnning of that region. This means that you can place that audio at, say, bar 37 and it's guaranteed that the attack of that sound will play exactly at bar 37. In this case anchor point = position of audio region in the Arrange Window.
    Even though you haven't played a MIDI note into the song in order to place this audio region, an "event" is generated for this sound which can be viewed in a special version of the Event Editor which shows the position of all audio regions in the arrangement. Access this by simply clicking on a blank area of the Arrange window and then opening the Event Editor.
    So let's say this sound is positioned at bar 37. Open the Event Editor (as described above) and you'll see an event at 37 1 1 1 and the name of that audio region to its right. In this case, the event's position = the start of the sound file = the position of the anchor within that sound file. If you changed the position of that event to 38, or 109, or 3, that audio region will be "triggered" at any of those positions. That sound will always "attack" on a downbeat.
    Now let's say you reversed that pinao note in order to create a dramatic swell into a section of your song. (Open the sample editor and use the Reverse function). At this point, the anchor point is still positioned at the beginning of the file! Play back the sequence (from our bar 37) and the audio will play back from bar 37, only backwards this time; the peak of that piano note will be at some point later than 37.
    So let's say you wanted to position this sound so that it hits exactly on the downbeat of bar 37. How do you do it? Well, you could always slide the audio file in the Arrange Window and try to line up the attack of the audio waveform with the downbeat of bar 37, but there's an easier way...
    Open the sample editor and move the anchor point to the end of the file, coinciding with the peak of the waveform (the piano's attack is now at the end because we reversed the audio). Next, close the sample editor window, click on a blank area in the Arrange Window and open the Event Editor. You'll see that this audio region is still positioned at bar 37, but the actual beginning of the sound file now starts before bar 37. Now when you play back, Logic will start playing that sound file before bar 37, but the audio's peak will be lined up at bar 37.

  • Thanks.. can u please help me out in one more question. how can i transfer files like pdf, .docx and ppt from my laptop to iPhone 5 ? please its urgent.

    thanks.. can u please help me out in one more question. how can i transfer files like pdf, .docx and ppt from my laptop to iPhone 5 ? please its urgent.

    See your other post
    First, i want to know how can i pair my iPhone 5 with my lenovo laptop?

  • More questions about pointers

    Sorry to post so many threads -- I hope I'm not pinching any nerves around here, but I've been in a programming trance recently, and I'm trying to learn as much as I can. If anyone has time to spare, there's still some things about pointers I'd like to try to understand. To start with, consider this simple character pointer declaration:
    char * pChar;
    What I'd like to know is what exactly is going on internally when this statement is compiled (before any other pointer or string literal assignment or anything like that -- just the declaration above). I mean, in terms of memory addresses and what not, what is happening here? This pointer variable would be created on the stack, right? What else happens?
    To expand on this question, let's say the above statement is the only statement in the entire program (so, again, there's no additional assignments to a string literal like +pChar = "a string"+ or to a character's address like +pChar = &charVariable+ -- I simply declare the character pointer +char * pChar+ and leave it at that.) If I then add the following printf() statement after it, like so:
    char * pChar;
    printf("%c", pChar);
    then the character 'K' is printed to the console. Alternatively, if I dereference pChar in the same printf() statement, like so:
    char * pChar;
    printf("%c", *pChar);
    then the character '[' (an opening brace) is printed to the console. All this seems odd to me given that the pointer hasn't been assigned to anything, so I would think it would produce a null value or something like that.
    I would really like to understand all this. Even after all the work I've put into trying to understand pointers, and even after all the help I've gotten from the devs around here, I still feel lost whenever I go back to pointers after having left them alone for even a short period of time.
    Any information on this topic, no matter how short or how long, will be very, very much appreciated. Thanks again.

    Yes -- I was referring to a local variable. Should have specified -- sorry about that.
    So we have a random address consisting of 4 bytes, e.g. in hex: [FE] [00] [09] [4B]. Assume when we tell printf to make a single char out of those bytes, it will select the lowest byte in the address (for extra credit, the student may determine if this assumption is true on his or her Mac; however students who fail to close this thread until that question is resolved will get no credit).
    hehe -- are you referring to the time you gave me that pointers exercise to do and it took me like two weeks to actually get around to actually doing it? Sorry about that, Ray -- it just took me awhile to find a time where I could put as much time and effort into as I wanted to (I don't know if you ever got around to reading the response, but I did put quite a lot of time and effort into that exercise, and it really was very helpful to me, so it didn't go to waste by any means, and I really appreciate your putting it up there for me to do). Anyways, the student apologizes to the instructor for that.
    This time around, though, the student would like to respond promptly to the instructor's exercise in order to receive his extra credit. The question that the instructor asked was to find out if "this assumption is true on his or her Mac" (this particular student is a he, by the way). I'm confused, though, about what particular assumption I'm supposed to be confirming. In the paragraph above, you said "we declare the char pointer pChar, and we assume that its value is random" -- is this the assumption I'm supposed to be confirming?
    I had changed the code a few times over the last 24 hours since I wrote this thread, and this time, when I went back and ran the following code:
    char * pChar;
    printf("%c", pChar);
    The student didn't get anything but a blank line. Instead of 'K' like before, nothing was written to the console that could be seen. Maybe it was a space or something this time, and that's why it wasn't visible? So, the student added another declaration after the first and used the same printf() statement to print the char-formatted value of the first char pointer, like so:
    char * pChar;
    char * pChar2;
    printf("%c", pChar);
    And this time I got a 'K' like before. If I change the printf() statement to print pChar2 instead of pChar then I get the space (or blank line or whatever) again. If I add another declaration, before the other two this time instead of after, like so:
    char * pChar3;
    char * pChar;
    char * pChar2;
    printf("%c", pChar);
    This time I still get 'K' for pChar. If I change the printf() statement to print pChar2, I get the blank line again. If I change the printf() statement to print pChar3, I get the blank line with it as well.
    I don't really know what to make of all that to be honest -- it seems like the pointer's value is pretty random to me, though. I don't know if that's the assumption you wanted me to check on or not. The only other one I can think of that you may have been referring to is when you mentioned that some compilers will check to see if the printf() function's arguments match the format specifiers, but I don't know what code I should run to find out if this is true or not for my compiler. I tried using printf() to print an int with a %c specifier and that ran fine, and when I did the opposite and used it to print a char with a %d specifier that worked fine too. But characters are integers (right?), so that's no surprise. If I declare an int, however, and try to use printf() to print it with a %s specifier, then the debugger comes up with a signal 10 error after the program starts, but I don't get any warnings ahead of time, so maybe that means the answer is no (meaning that the compiler does not check to see if the arguments match the format specifiers)
    Anyways, I think the student is butchering the instructor's exercise completely. The student feels very unintellegent at the moment, but he wanted to try...
    If the address stored in pChar is random, then the contents at that address will also be random.
    I would have thought that if the address is random, then the contents of that address would be empty since it is not an address that's being used, right? Does this mean that all memory addresses have something in them, even if they are not in use? I mean the frequently used "mailbox" analogy for pointers says that when you declare a variable, an empty mailbox is used to hold it, right? And if that's the case, doesn't that mean that the empty mailboxes have no contents? So how would the contents be random? I don't if any of that made any sense or not -- feel free to ignore me. I can't seem to get myself to understand how all this memory address business and everything surrounding it works -- I feel very lost.
    What do you expect to happen in this case?
    You asked this about running the following code:
    char * pChar;
    *pChar = 'A';
    Honestly, I really have no idea what to expect here. I mean, I know that usually, before you dereference a pointer to assign the value it points to to something (like in the second statement above), you usually assign the pointer to the address of another variable or something (like +pChar = &charVariable+). So, the student proceeded to cheat and run this code in his compiler, at which pointer the program ran, but he received a signal 10 error. He doesn't know what to make of this.
    My understanding of pointers is much, much better than what it used to be, and most of that is thanks to you and the other devs around here in previous threads I've started. Nevertheless, I still feel like I don't know much of anything in the realm of things when it comes to pointers.
    Thanks to the rest of you guys as well for all your responses. They were all helpful, and I read them all thoroughly, but it seems like, for every answer I get, five more questions come up that I'm equally confused about. I'm determined, though -- I'm not going to give up until I understand how all this works, so thanks to everyone for continually answering my questions.

  • Thx for the help today - one more question

    Thx for all the help today. My flash works perfect now. One
    more question... I get a frame around my flash when using internet
    explorer and have the mouse over it... why?
    check it out:
    http://www.ardent.se

    search google and this forum for "active content" - been
    front page news for weeks - hundreds of
    discussions, blogs, articles all over the web.
    --> Adobe Certified Expert (ACE)
    --> www.mudbubble.com :: www.keyframer.com
    -->
    http://flashmx2004.com/forums/index.php?
    -->
    http://www.macromedia.com/devnet/flash/articles/animation_guide.html
    -->
    http://groups.google.com/advanced_group_search?q=group:*flash*&hl=en&lr=&ie=UTF-8&oe=UTF-8
    cjh81 wrote:
    > Thx for all the help today. My flash works perfect now.
    One more question... I
    > get a frame around my flash when using internet explorer
    and have the mouse
    > over it... why?
    >
    > check it out:
    http://www.ardent.se
    >

  • Few more questions (sorry I'm new)

    Let me just say you guys are amazing, this entire community and how you support eachother... Ive strolled through just about every post in rebuilding section for the most recent 20 pages and must say, everyone here is absolutely glorious. However I have a few questions about my own personal roadmap if anyone could provide insight Im not a complete noob but so far Ive just been reading, taken no action except paying full without getting anything.  I have a ClosedOut account with CITI, should be paid in full today or tommorow or whenever the check clears. CAgency was working I assume on behalf of CITI because both checks were made for full amount to CITI and balance was the balance. I had perfect payment for 2.5 years, the was delinquent for 8 months, paid in full 4.1k in two installments. When is it not greedy to ask CITI for some love and peace and kindness with a GW letter? I have valid reason as to why I stopped (2 car accidents april, july) and why I paid them back (accident settlement)How likely are they to help me out? I can provide them anything their heart desires with regards to documentation - medical, college, police reports, absolutely anything. I was making maybe $300 a month during that time and literally borrowed $33 from my neighbor to buy gas. Paying them seemed so huge at the time I just closed my eyes.I also have a natural gas account on my report that is negative in this manner:   JUL-OK__AUG-OK__SEPT-ND__OCT-120Is this possible to be real? 120 is 4 monthsIf I still dont believe you, who do I call first, gas company or experian?If I call gas company, do I say youre wrong give me statements or do I nicely ask them to change it off the bat without disputingIf they give me statements and they are in fact wrong, do I call back or write a letter? Certified or no? Do I send said statements to bureaus? When? Finally, was it a mistake to take out and pay off a Discover student loan in two years? It was for 4k and I applied again and was denied.. Did they not make enough to bother with me? I sent them a recon letter, saying Im loyal please love me. Hope to hear back because loved them much more than Sallie. Any insight as to where I should have sent such letter (email)? I sent it to application status questions on their site..  Thoughts/suggestions?

    yes i would start with the gw letters now.  explain about the accidents and let them know that you were perfect till that point.  in my experience sometimes one gw letter will do it and others you send once a month. As far as the gas company goes, yes I would call them and ask to see the statements if you dont have any.  If they are indeed wrong I would ask them to correct it.  Do you still have service with them?  If you do then I would think that they would be wrong otherwise i'm sure that they would not still be providing this service. If not yes I would dispute it with the cb.I know nothing about Discover student loans so I will let someone else get to that one.  Overall it is nice to have one installment loan going on.  When you paid it off you probably had a small drop in your fico score.

  • Few more questions (sorry I'm 22 and new)

    Let me just say you guys are amazing, this entire community and how you support eachother... Ive strolled through just about every post in rebuilding section for the most recent 20 pages and must say, everyone here is absolutely glorious. However I have a few questions about my own personal roadmap if anyone could provide insight Im not a complete noob but so far Ive just been reading, taken no action.  I have a CO account with CITI, should be paid in full today or tommorow or whenever the check clears. CA was working I assume on behalf of CITI because both checks were made for full amount to OC and balance was the balance, not 0. I had perfect payment for 2.5 years, the was delinquent for 8 months, paid in full 4.1k in two installments. When is it not greedy to ask them for some love and peace and kindness with a GW letter? I have valid reason as to why I stopped (2 car accidents april, july) and why I paid them back (accident settlement)How likely are they to help me out? I can provide them anything their heart desires with regards to documentation - medical, college related, police reports, absolutely anything. I was making maybe $300 a month during that time and literally borrowed $33 from my neighbor to buy gas. Paying them seemed so huge at the time I just closed my eyes.I also have a natural gas account on my report that is negative in this manner:   JUL-OK__AUG-OK__SEPT-ND__OCT-120Is this possible to be real? 120 is 4 monthsIf I still dont believe you, who do I call first, gas company or experian?If I call gas company, do I say youre wrong give me statements or do I nicely ask them to change it off the bat without disputingIf they give me statements and they are in fact wrong, do I call back or write a letter? Certified or no? Do I send said statements to bureaus? When? Finally, was it a mistake to take out and pay off a Discover student loan in two years? It was for 4k and I applied again and was denied.. Did they not make enough to bother with me? I sent them a recon letter, saying Im loyal please love me. Hope to hear back because loved them much more than Sallie. Any insight as to where I should have sent such letter (email)? I sent it to application status questions on their site..  Thoughts/suggestions?

    yes i would start with the gw letters now.  explain about the accidents and let them know that you were perfect till that point.  in my experience sometimes one gw letter will do it and others you send once a month. As far as the gas company goes, yes I would call them and ask to see the statements if you dont have any.  If they are indeed wrong I would ask them to correct it.  Do you still have service with them?  If you do then I would think that they would be wrong otherwise i'm sure that they would not still be providing this service. If not yes I would dispute it with the cb.I know nothing about Discover student loans so I will let someone else get to that one.  Overall it is nice to have one installment loan going on.  When you paid it off you probably had a small drop in your fico score.

Maybe you are looking for

  • Migration: Jboss 5.1 OpenLdap Authentication to WebLogic 10.3.3

    Hi, We are currently working on Migration project where we are trying to Migrate from Jboss 5.1 to WebLogic 10.3. In JBoss we had configured Realm as below in server.xml file: <Realm className="org.apache.catalina.realm.JNDIRealm" debug="99" connecti

  • Windows 7 Clean install onto newly purchased SSD

    Here is my configuration, purchased last November: 2764CT CONFIGURED SYSTEM 44C6206 SBB I.CR2DUO PR P8700(2.53GHZ 45M3453 VBB G.WIN.7PROF.W/XPDOWNGR. 45M3816 SBB GWXPP(PR.VIA DWRGW7P)US EN 42X6315 SBB ATIMOBILTYRADEON3470 256MB 42X6308 VBB 3GBPC3-850

  • RE:can't able to change Price in PO

    Hi Guru's one of my user has created the PR on 11/05/11 and created the PO on the same date after that another person has deleted the PR on 13/05/11 and user was trying to create GR  ON 19/07/11 would it be possible to create the GR  for the particul

  • Iphone 4 update problem (in itunes)

    When I connect to itunes and hit update it says "The iphone software update server could not be contacted" I haven't updated in forever any ideas why i'm getting this?

  • Report in EBP

    Hi All, Iam new to EBP, I need to code a report output fields shopping cart number,PO number,created by,Amount, currency,shopping cart creation date, type of approval and Po creation date, Please let me know the fields and table names for the above.