Inconsistency in the Dictionary for structure COMT_BSP_BP_SEAREQ_DIVERSE

Please could someone help me out on this one. I am new to ABAP and CRM Technical and have just started my career on this new track. I am getting "Inconsistency in the Dictionary for the structure COMT_BSP_BP_SEAREQ_DIVERSE" on the WebUI as error when I am logging into it -this error has got generated after I was trying to create a field using AET on WebUI. I have taken the help of another ABAPer who is presently more adept that me and he used st22 to identify that a class 'CL_BUPA_IL_SEARCH_SERVICE' is not getting activated which is resulting in this error. There is 'Inconsistency in the Dictionary for the structure "COMT_BSP_BP_SEAREQ_DIVERSE".' The BASIS guys have told me that I need to find some note to get this fixed - I have never done this. Please could someone give me a step- by-step solution to get this issue resolved. Please if there is any notes that would supplement this, kindly mail me at nishant.prasad(at)zensar.in. Thank you.

Inconsistency in the Dictionary for the structure "COMT_BSP_BP_SEAREQ_DIVERSE".Error in the SAP kernel. The current ABAP "SAPLCOM_PARTNER_TOOLS" program had to be terminated because the ABAP processor detected an internal system error. Please could someone provide resolution.

Similar Messages

  • Inconsistency in the Dictionary for the structure "MC02M_0ITM".

    Hi Expert,
    we are applying ehp3 for ERP 6.0. I am getting the below abap dump DDIC_TYPE_INCONSISTENCY.
    Runtime Errors DDIC_TYPE_INCONSISTENCY
    Date and Time          29.08.2011 10:12:27
    Short text
         Inconsistency in the Dictionary for the structure "MC02M_0ITM".
    What happened?
         Error in the SAP kernel.
         The current ABAP "SAPLMCEX" program had to be terminated because the
         ABAP processor detected an internal system error.
    Error analysis
         There is an internal system error.
         eliminated with ABAP/4.
    How to correct the error
         The internal system error cannot be fixed by ABAP means only.
         You may be able to find a solution in the SAP note system. If you have
         access to the SAP note system, try searching for the following terms:
          "DDIC_TYPE_INCONSISTENCY" " "
          "SAPLMCEX" or "LMCEXTOP"
    I can see there is error on Table MC02M_0ITM:
    Table MC02M_0ITM could not be activated (E- Field ZZUNDTSORT in table MC02M_0ITM is specified twice. Please check )
    when I run the program RSDDCHECK in your system,  for check the structure "MC02M_0ITM".
    There is som error.
    Any Idea how can I solve this kind of error. Is it some repport for help this?
    Regards

    Hi Srikishan,
    Thanks for reply.
    There is just one field ZZUNDTSORT on talbe.
    When I try to check the table I get this log:
    Check table/structure MC02M_0ITM
               Check table MC02M_0ITM (REZ/29.08.11/11:14)
               Enhancement category 3 possible, but include or subty. not yet classified
               Field ZZAFHENTFORM in table MC02M_0ITM is specified twice. Please check
               Field ZZAFHKVANTUM in table MC02M_0ITM is specified twice. Please check
               Field ZZAFHTERMFRA in table MC02M_0ITM is specified twice. Please check
               Field ZZAFHTERMTIL in table MC02M_0ITM is specified twice. Please check
               Field ZZAFREGNDATO in table MC02M_0ITM is specified twice. Please check
               Field ZZAFREGNKVAMTUM in table MC02M_0ITM is specified twice. Please check
               Field ZZAFREGNMEINS in table MC02M_0ITM is specified twice. Please check
               Field ZZALTMATNR in table MC02M_0ITM is specified twice. Please check
               Field ZZALTMPRIS in table MC02M_0ITM is specified twice. Please check
               Field ZZANSOEGNR in table MC02M_0ITM is specified twice. Please check
               Field ZZANTHA in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_DUMMY1 in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_DUMMY2 in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_GRKERN in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_KNKERN in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_MELDR in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_OLIEIND in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_RENS in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_RENTFRO in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_RENTIL in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_TOR in table MC02M_0ITM is specified twice. Please check
               Field ZZBK_TORTIL in table MC02M_0ITM is specified twice. Please check
               Field ZZBPROT in table MC02M_0ITM is specified twice. Please check
               Field ZZBUREN in table MC02M_0ITM is specified twice. Please check
               Field ZZBVAND in table MC02M_0ITM is specified twice. Please check
               Field ZZFORBELNR in table MC02M_0ITM is specified twice. Please check
               Field ZZFORFALDSDATO in table MC02M_0ITM is specified twice. Please check
               Field ZZFORVUDB in table MC02M_0ITM is specified twice. Please check
               Field ZZGJAHR in table MC02M_0ITM is specified twice. Please check
               Field ZZKONCEPTNR in table MC02M_0ITM is specified twice. Please check
               Field ZZLAESSELV in table MC02M_0ITM is specified twice. Please check
               Field ZZLAGERLEJDATO in table MC02M_0ITM is specified twice. Please check
               Field ZZLAGERLEJSATS in table MC02M_0ITM is specified twice. Please check
               Field ZZLAGERSATSDATO in table MC02M_0ITM is specified twice. Please check
               Field ZZLAGERSATSDATO2 in table MC02M_0ITM is specified twice. Please check
               Field ZZLAGERSATSDATO3 in table MC02M_0ITM is specified twice. Please check
    Regards

  • Inconsistency in the Dictionary for the structure "VXO2APPL"

    Hi gurus,
    I started with SP stack upgrade to 10(Install  SAP EHP1 for SAP NetWeaver 7.0  Stack 10 with Kernel 7.20).
    --First i did kernel upgrade from 701 patch 111 to 720 patch 105 which was successfull.
    --Now when i tried to upgrade the stack it gives me below error:
    Runtime Errors         DDIC_TYPE_INCONSISTENCY
    Date and Time          22.02.2012 14:16:39
    Short text
         Inconsistency in the Dictionary for the structure "VXO2APPL".
    What happened?
         Error in the SAP kernel.
         The current ABAP "SAPLSDOC" program had to be terminated because the
         ABAP processor detected an internal system error.
    Error analysis
         There is an internal system error.
         eliminated with ABAP/4.
    Trigger Location of Runtime Error
         Program                                 SAPLSDOC
         Include                                 LSVRXPIN
         Row                                     1.096
    **************************************************************************8
    I am able to login to the system in 000 client but when  i give any tcode i get this error....(i am only able to fire st22 and no other t code)
    Anyone who can help or has got the same problem earlier?
    Thanks
    Siddharth

    Hi Siddharth,
    Is Kernel upgrade to 720 really required for Support package stack upgrade ?
    because information clearly states "Error in the SAP kernel" rather i would suggest to upgrade your SAP system kernel to latest of 701 patch level 150
    Once you revert kernel to 701 , then try applying Support packages via client 000.
    Let us know results
    Regards,

  • Inconsistency in the Dictionary for the structure "FAGLPOSX" - GL Planning

    Hi,
    We are in ECC 6.0. After inputting plan data for GL using TCode GP12N, I am trying to run the report F.01. However the system is giving the error "Inconsistency in the Dictionary for the structure "FAGLPOSX"". Has anyone faced this problem before? Do I have to activate something before I start planning? Do help if you have a solution for the same.
    Thanks and Regards
    Shivram.

    Hi,
    Solved!! I had incorrectly added EBELN in the additional fields for line item display config. This resulted in the EBELN field appearing twice in FAGLPOSX and hence the error.
    Rgds
    Shivram.

  • I still need help with the Dictionary for my Nokia...

    I still need help with the Dictionary for my Nokia 6680...
    Here's the error message I get when trying to open dictionary...
    "Dictionary word information missing. Install word database."
    Can someone please provide me a link the where I could download this dictionary for free?
    Thanks!
    DON'T HIT KIDS... THEY HAVE GUNS NOW.

    oops, im sorry, i didnt realised i've already submitted it
    DON'T HIT KIDS... THEY HAVE GUNS NOW.

  • Can i change the dictionary for spell checking

    Hi,
    I am using the trial version of robo help and I am testing
    how the support for german is.
    I changed my project to german (file / project setings /
    language). The result up to now is, that there is german spell
    checking, but the dictionary used doesn't know all words that I' m
    using. Of course I can add word by word to the dictionory, but I
    dont't like to do this hard job.
    Is there a way to use the dictionary which MS Word is using,
    which would be very fine for me?
    If anyone can help me, thanks for this.
    Kindly regards
    Fritzj

    Hi all
    I did a bit of digging around and here is what I've
    discovered. Hopefully it will help?
    I am using Word 2003, so the method outlined here is for that
    version. Note that I'm not a particularly rabid Word user, as I
    tend to avoid it if at all possible, so I suppose other versions
    may differ. Additionally, I'm assuming here that you are referring
    to the personal dictionary and not one that is supplied by virtue
    of installing Word or some other component.
    In Word, I located the personal dictionary. (Tools >
    Options... > Spelling & Grammar tab > Custom
    Dictionaries... button) This listed the "Full path" of
    C:\...\Application Data\Microsoft\Proof\CUSTOM.DIC. I find this
    mildly amusing, as I can't truly see the "full path" and am left
    wondering what lies between C:\ and \Application Data. I mean, ...
    could be anything, no?
    So on a hunch, I looked in the following location:
    C:\Documents and Settings\Rick Stone\Application
    Data\Microsoft\Proof
    As luck would have it, there was CUSTOM.DIC all big as life
    and twice as natural.
    Suspecting it was a simple ASCII text file as the RoboHelp
    HTML personal dictionary is, I tried opening it using Windows
    Notepad. Sure enough, it popped open. Seems to simply list terms
    with no other information.
    So at this point, we know how to access the contents of the
    personal dictionary for Word 2003. Now let's look at RoboHelp HTML,
    shall we?
    In RoboHelp HTML, you click Tools > Spelling Options...
    > Dictionaries tab. Here, you should see Personal Dictionary.tlx
    listed in the left panel bearing the label of "Used dictionaries:"
    (Sorta sounds like a library sale, eh?) To the right of the file
    name, in the same pane, you should see the path listed. Mine reads:
    file://C:/Documents and Settings/Rick Stone/Application
    Data/eHelp/Lexicons/Personal Dictionary.tlx
    I opened it using Windows Notepad and here is what I see:
    #LID 30840
    1boffo i
    2xzxz azxzx
    3ppp ApPp
    4azx cxza
    5winnie CWiNnIe
    6garbo e
    I have some really odd terms in there. And for good reason!
    During my initial spelunking, it appears that a particular
    structure is in place. So I tested by adding terms along with
    different options for each term. The terms listed are matched to
    the option used when you click the Modify... button on the Spelling
    Options dialog.
    1boffo i
    1boffo is the term and the i means "No action" is the option
    used for the term.
    2xzxz azxzx
    2xzxz is the term and the a means "Auto Change" is the option
    used for the term. The zxzx following the a indicates the term to
    automatically change to.
    3ppp ApPp
    3ppp is the term and the A means "Auto Change (Preserve
    Case)" is the option used for the term. The pPp following the A
    indicates the term to automatically change to.
    4azx cxza
    4azx is the term and the c means "Change" is the option used
    for the term. The xza following the c inidicates the term to offer
    to change to.
    5winnie CWiNnIe
    5winnie is the term and the C means "Change (Preserve Case)
    is the option used for the term. The WINnie following the C
    indicates the term to offer to change to.
    6garbo e
    6garbo is the term and the e means "Treat as misspelled" is
    the option used for the term.
    Sooo, having looked all that over, it would seem as simple as
    copying the contents of the original Personal Dictionary from Word,
    then opening the Personal Dictionary from RoboHelp HTML and pasting
    the terms in. Then try modifying them a tad by inserting an "i"
    following the term. I'm not sure if a tab is what was used between
    the term and the i, so it may take a bit of trial and error.
    Hopefully this helps a bit... Rick

  • How do you get the dictionary for InDesign CS 5 to learn a word like "mm" as in mm/dd/yyyy

    Sometimes I can't get the dictionary in InDesign CS 5 for windows to learn word that I use over & over.  The Add button across from Add to User Dictionary is disabled.  How can I enable that button & save something like "mm" in "mm/dd/yyyy?"
    Thanks!

    A button that doesn't work when you think it should could indicate damaged preference files. See http://forums.adobe.com/thread/526990

  • Can someone post a .pkg of the Dictionary for OS X Tiger?

    My efforts to find one already available didn't turn up anything. I'm trying to help a friend who's dictionary has mysteriously vanished and it would just be easiest to re-install the Dictionary application. Of course I could use Pacifist, but I have OLD install disks that don't have it, and he doesn't have his install disks.
    Thanks!

    Components of OS X cannot legally be distributed outside of the installer for OS X. But you can replace lost or damaged parts.
    How to Use Pacifist to Replace Deleted or Missing OS X Components
    Insert the OS X Installer DVD into the optical drive. Use a simple utility like TinkerTool to toggle invisibility so you can see invisible items. Alternatively, open the Terminal application in your Utilities folder and at the prompt enter the following:
    defaults write com.apple.finder AppleShowAllFiles Yes
    Press RETURN.
    To turn off the display of invisible files repeat the above command substituting No for Yes.
    The install packages are located in the /System/Installation/ folder on the DVD.
    Download the shareware utility Pacifist from VersionTracker or MacUpdate. Use it to extract a fresh copy of the missing item(s) from the file archives on your OS X installation DVD. The file archives are in the /System/Installations/ folder (use Go to Folder option in the Go menu of the Finder.)
    Here are Four Basic ways to use Pacifist (courtesy of George Orville.)
    A. Drag a .pkg icon onto the Pacifist window .....proceed to step 7.
    B. Click on “Open Package ....” and navigate to package desired and click “Open” in the open/save window.....proceed to step 7.
    C. Insert Mac OS X installer CD and when it mounts, navigate to .... Menu->Go->Go to Folder.
    In the path field enter or paste ....
    /Volumes/disc name/System/Installation/Packages (where disc name is the name of the CD/DVD that you inserted.
    • Click on the "Go" button .....
    • Drag a .pkg to Pacifist..... proceed to step 7.
    The package you'll need will have to be discovered by trial and error, but for most applications you should start with the Essentials.pkg and/or Additional Essentials.pkg.
    D. Insert your Mac OS X install disk 1 .... and open Pacifist.
    1. In Pacifist, select "Open Mac OS X Install Packages" ... dialog may appear asking for disk 2, then disk 3 and finally disk 1 again.... {if DVD is not used)...If “Stop Loading” is selected...the procedure will stop!!!
    2a. When loading is complete, a new window appears, click the triangle to display contents of each package...Select item and proceed to step 7.
    2b. or click the “Find” icon in the Pacifist window and type the name of the software you need.
    3. In the list that comes back, click the top most entry for the item that you want. ..... that is the one for the English language.
    4. On the top of the Pacifist window, click “verify” .... you will probably be prompted for your password.
    5. Enter checks for.... “verify permissions” and “verify file contents.” and click “verify” ....enter password when prompted.... you will get back output which may look like this:
    20 files were scanned.
    20 of 20 files were present on the hard disk.
    0 of 20 files had file permissions that did not match those specified in the package.
    0 of 20 files had checksums that did not match those specified in the package.
    6. Click “close”. Go to step 7.
    Extract or Install........
    7. In the Toolbar (upper left), you now have the option to extract or install. Click a file in the lower list and those two icons will be enabled.
    8. If “Extract to...” is selected.... navigate to the location where the file will be placed, select “choose”, select “extract” in new dialog that appears,authenicate , if prompted, click “OK”.
    9. In the next dialog, click “Extract”.
    10. If “Install” is selected... dialog will appear with the location/path of the installed software. Click “Install”
    11. Type in your password, click “OK”
    • Pacifist will begin to extract files.
    12. In steps 8/10ß.... you also have the choice to “cancel”
    Notes.....
    • Pacifist may find that a file it is installing already exists on the hard disk. Pacifist will present you with an alert panel....
    Stop
    Leave original alone
    Update ..... Default selection
    Replace .... Replace option should only be used on full install packages

  • Configuring Dictionary for password policy

    Hi all,
    I am trying to configure the dictionary for password checking. But it is showing me following error
    XPRESS exception ==> com.waveset.util.WavesetException: Can't call method queryString on class com.waveset.util.JdbcUtil ==> com.waveset.util.WavesetException: ==> java.sql.SQLException: Base table or view not found, message from server: "Table 'waveset.dictionary' doesn't exist".
    It looks that it needs some table "dictionary" in waveset database.
    But what will b the structure for that table???
    Please suggest the solution to remove this error.
    Thanks

    Hi,
    I have created the table using the script given in sample folder and configured the dictionary.
    But now when i am trying to change the password it is giving following error
    The password policy is configured to check passwords against a dictionary, but the dictionary is not configured.
    Please suggest any idea to remove this error.
    Thanks

  • Where has the dictionary gone with IOS 6?

    After installing IOS 6 on my iPad 2 the dictionary for iBooks and New York Times is lost. I've done the recommended forced app restart and shut down of the iPad without result. I have also turned off the voiceover to no help. I see others are complaining about the same Issue. Does anyone know the status on this? Is it going to be fixed or are we going to be left without dictionary? Apple should tell us whether it is going to come back or if it doesn't fit into their business plan.

    You should have the dictionary for all Apple apps.  If you type a word in Notes and then select it, do you not get a "define" option?  Have you also done a Reset of your iPad?  Is your active Keyboard the one for English?
    Nobody in these forums can tell you anything about Apple's plans, but you can tell them what you want via
    http://www.apple.com/feedback

  • Dictionary for webpages

    I saw that selecting a word in a ibook, you can look up the dictionary for that word; is it possible to get to do the same for a word on a webpage? (I saw that, normally, selecting a word on a webpage you get only the "copy" function)
    thanks!

    I do not know of any iPad browser that has that feature Maybe after multitasking is available someone can write an app to easily do that.

  • "The Dictionary structure or table "*C865" is either not active or does"

    Hello experts,
    I have a transaction - VKOA. I get the following error on executing this t-code. The program used by this t code is SAPL089C.
    The error is
    Runtime errors         SYNTAX_ERROR
    Occurred on     11/23/2009 at   05:12:58                                                                               
    Syntax error in program "SAPL089C ".                                                                               
    What happened?                                                                               
    The following syntax error occurred in the program SAPL089C :                                  
    "The Dictionary structure or table "*C865" is either not active or does not exist."                       
    Error in ABAP application program.                                                                               
    The current ABAP program "SAPLSVIM" had to be terminated because one of the                    
    statements could not be executed.                                                                               
    This is probably due to an error in the ABAP program.          
    Error analysis             
    The following syntax error was found in the program SAPL089C :                       
    The Dictionary structure or table *C865 is either not active or does not exist.
    Please suggest a suitable solution to this problem...
    Many Thanks in adv.
    Kunal
    Edited by: kunal kotak on Nov 23, 2009 6:53 PM

    Hi ,
    I will try the solution propesed by Max.
    In the meantime, I would like to confirm if there is something related to SAP Note # SAP Note 72121. Refer the following details from the note.
    Symptom
    When you maintain account determination (FI or SD), you get the error
    message:
    The DDIC structure or table "*C400" is not active or does not exist.
    OR
    The system writes a dump with DBIF_NTAB_TABLE_NOT_FOUND, C400 was not
    found.
    C401 can also appear instead of C400.
    Additional key words
    Tables C400, C401.
    Program: SAPL089C, L089CT00
    Transaction: VKOA
    Solution as per the note
    1. Execute the program RV12A002. On the selection screen, enter Usage C,
    Tables 400 to 401.
    WARNING: Make sure that you only delete C400 and C401!
    Execute the program.
    2. Execute program RV12A001. On the selection screen, enter Usage C and
    mark 'Reports & Screens'.
    Can there be sometihing similar to this for C865 table as well. Just a thought.

  • Help for Structure in Local Dictionary

    Hi All
    I need to create a structure of structures in local dictionary of the application.
    While setting the data type of the element in the structure, It just give me the option for simple data type and predefined datatype.
    Is there any way in which we can create structure of structure?
    Please help
    Thanks in advance
    Regards
    Sonal Mangla

    I think it's no possible because the generated file .xlf have different tags inside for the structures and simple types....
    I tried but without a solution.
    Bye,
    Vito

  • How to update a large (over 4 million item) List(Of Byte) quickly by altering indexes contained in a Dictionary(Of Integer, Byte) where the Dictionaries keys are the indexes in the List(Of Byte) that need to be changed to the values for those indexes?

       I'm having some difficulty with transferring images from a UDP Client to a UDP Server. The issue is receiving the bytes necessary to update an original image sent from the Client to the Server and updating the Servers List(Of Byte) with the
    new bytes replacing bytes in that list. This is a simplex connection where the Sever receives and the Client sends to utilize the least amount of bandwidth for a "Remote Desktop" style application where the Server side needs image updates of whatever
    occurs on the Client desktop.
       So far I can tranfer images with no issue. The images can be be any image type (.Bmp, .Gif, .JPeg, .Png, etc). I was working with sending .JPeg's as they appear to be the smallest size image when a Bitmap is saved to a memory stream as type
    .JPeg. And then I am using GZip to compress that byte array again so it is much smaller. However on a loopback on my NIC the speed for sending a full size screen capture is not very fast as the Server updates fairly slowly unless the Clients screen capture
    Bitmap is reduced in size to about 1/3'd of the original size. Then about 12000 bytes or less are sent for each update.
       Due to .JPeg compression I suppose there is no way to get the difference in bytes between two .JPegs and only send those when something occurs on the desktop that alters the desktop screen capture image. Therefore I went to using .Bmp's as each
    .Bmp contains the same number of bytes in its array regardless of the image alterations on the desktop. So I suppose the difference in bytes from a second screen capture and an inital screen capture are what is different in the second image from the initial
    image.
       What I have done so far is save an initial Bitmap of a screen capture using a memory stream and saving as type .Bmp which takes less than 93 milliseconds for 4196406 bytes. Compressing that takes less than 118 milliseconds to 197325 bytes for
    the current windows on the desktop. When that is done PictureBox1 is updated from nothing to the captured image as the PictureBox's background image with image layout zoom and the PictureBox sized at 1/2 my screens width and 1/2 my screens height.
       Then I save a new Bitmap the same way which now contains different image information as the PictureBox is now displaying an image so its back color is no longer displayed (solid color Aqua) and the cursor has moved to a different location. The
    second Bitmap is also 4196406 in bytes and compressed it was 315473 bytes in size.
       I also just found code from this link Converting a Bitmap to a Byte Array (and Byte Array to Bitmap) which gets a byte array
    directly from a Bitmap and the size of that is 3148800 for whatever is full screen captured on my laptop. So I should be able to work with smaller byte arrays at some point.
       The issue I'm having is that once the Client sends an image of the desktop to the Server I only want to update the server with any differences occuring on the Clients desktop. So what I have done is compare the first screen captures bytes (stored
    in a List(Of Byte)) to the second screen captures bytes (stored in a List(Of Byte)) by using a For/Next for 0 to 4196405 where if a byte in the first screen captures List is not equal to a byte in the second screen captures List I add the index and byte of
    the second screen captures list to a Dictionary(Of Integer, Byte). The Dictionary then only contains the indexes and bytes that are different between the first screen capture and second screen capture. This takes about 125 milliseconds which I think is pretty
    fast for 4196406 byte comparison using a For/Next and adding all the different bytes and indexes for each byte to a Dictionary.
        The difference in Bytes between the inital screen capture and the second screen capture is 242587 as an example which changes of course. For that amount of bytes the Dictionary contains 242587 integers as indexes and 242587 bytes as different
    bytes totaling 485174 bytes for both arrays (keys, values).  Compressed the indexes go from 242587 to 43489 bytes and the values go from 242587 to 34982 bytes. Which means I will have to send 78, 481 bytes from the Client to the Server to update the display
    on the server. Quite smaller than the original 4196406 bytes of the second Bitmap saved to type .Bmp or the compressed size of that array which was 315473 bytes. Plus a few bytes I add as overhead so the server knows when an image array ends and how many packets
    were sent for the array so it can discard complete arrays if necessary since UDP is lossfull although probably not so much in current networks like it may originally have been when the internet started.
        In reality the data from the Client to the Server will mostly be the cursor as it moves and updating the Server image with only a few hundred bytes I would imagine at a time. Or when the cursor selects a Button for example and the Buttons
    color changes causing those differences in the original screen capture.
       But the problem is if I send the Dictionaries Indexes and Bytes to the Server then I need to update the original Bitmap List(Of Byte) on the server by removing the Bytes in the received informations Index locations array from the Servers Bitmap
    List(Of Byte) and replacing those Bytes with the Bytes in the received informations Byte array. This takes so long using a For/Next for however many indexes are in the received informations Index array to update the Bitmap List(Of Byte) on the server using
    "Bmp1Bytes.RemoveAt(Index As Integer)" followed by "Bmp1Bytes.Insert(Index As Integer, Item As Byte)" in the For/Next.
        I've tried various For/Next statements including using a new List(Of Byte) with If statements so If the the integer for the For/Next ='s the Key in a Dictionary(Of Integer, Byte) using a Counter to provide the Dictionaries Key value then
    the Dictionaries byte value will be added to the List(Of Byte) and the counter will increas by one Else the List(Of Byte) adds the original "Bmp1Bytes" byte at that index to the new List(Of Byte). This takes forever also.
       I also tried the same For/Next adding to a new Dictionary(Of Integer, Byte) but that takes forever too.
       I think I could use RemoveRange and AddRange to speed things up. But I don't know how to retrieve a contiguous range of indexes in the received indexes that need to be updated in the servers "Bmp1Bytes" List(Of Byte) from the received
    array of indexes and bytes which are in a Dictionary(Of Integer, Byte).  But I believe this would even be slower than some realistic method for replacing all Bytes in a List(Of Byte) when I have the indexes that need to be replaced and the bytes to replace
    them with.
       Even if I just used AddRange on a new List(Of Byte) to add ranges of bytes from the original "Bmp1Bytes" and the changes from the Dictionary(Of Integer, Byte) I think this would be rather slow. Although I don't know how to do that
    by getting contiguous ranges of indexes from the Dictionaries keys.
       So I was wondering if there is some method perhaps using Linq or IEnumerable which I've been unable to figure anything out which could do this.
       I do have some copy and pasted code which I don't understand how it works that I am using which I would guess could be altered for doing something like this but I can't find information that provides how the code works.  Or even if I did
    maybe I can't understand it. Like the code below which is extremely fast.
       Dim strArray() As String = Array.ConvertAll(Of Integer, String)(BmpComparisonDict.Keys.ToArray, Function(x) x.ToString())
    La vida loca

    Monkeyboy,
    That was quite a bit to read, but still a bit unclear. Could you put a specific list of goals/questions, asked in the smallest possible form?
    It seems like either you're making a program that monitors activity on your computer, or you're writing some kind of remote pc app.
    When you do get your bytes from using lockbits, keep in mind all the files header info would be lost. I think retaining the header info is worth the extra bytes.
    The other, thing: I'm not sure if you're taking 32bpp screen shots, but also keep in mind that the "whole desktop" is the final destination for blended graphics, if that makes sense. What I mean is that there is no need to capture an "alpha"
    channel for a desktop screenshot, as alpha would always be 255, this could save you 1 byte per pixel captured... Theres nothing "behind" the desktop, therefore no alpha, and every window shown above the desktop is already blended. I suggest using
    24Bpp for a full screen capture.
    Your X,Y information for the mouse could be stored as UINT16, this would save you a measly 2 bytes per location update/save.
    When you update your byte arrays, maybe you can turn the array into a stream and write to whatever index, however many bytes, that should prevent a "Shift" of bytes, and instead overwrite any bytes that "get in the way".
    ex
    Dim example As String = "This is an example."
    Dim insertString As String = "was"
    Dim insertBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(insertString)
    Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(example)
    Dim modifiedBytes As Byte() = {}
    Using ms As New System.IO.MemoryStream(bytes)
    ms.Position = 5
    ms.Write(insertBytes, 0, 3)
    modifiedBytes = ms.ToArray
    End Using
    Dim newString As String = System.Text.Encoding.ASCII.GetString(modifiedBytes)
    'Notice how below there isn't the word "is" anymore, and that there isn't a
    'space.
    'This demonstrates that you overwrite existing data, versus shifting everything to
    'the right.
    'Returns: This wasan example.
    MsgBox(newString)
    “If you want something you've never had, you need to do something you've never done.”
    Don't forget to mark
    helpful posts and answers
    ! Answer an interesting question? Write a
    new article
    about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.
    Well it's too much to read. I was really tired when I wrote it. Even the below is too much to read but perhaps gets the point across of what I would like to do which I think
    Joel Engineer may have answered but I'm not sure. As I'm still too tired to understand that yet and research what he said in order to figure it out yet.
    But maybe the code below can provide the concept of the operation with the comments in it. But seeing as how I'm still tired it may be confused.
    Option Strict On
    Imports System.Windows.Forms
    Imports System.IO
    Imports System.IO.Compression
    Imports System.Drawing.Imaging
    Imports System.Runtime.InteropServices
    Public Class Form1
    Dim Bmp1Bytes As New List(Of Byte)
    Dim Bmp1BytesCompressed As New List(Of Byte)
    Dim Bmp2Bytes As New List(Of Byte)
    Dim BmpComparisonDict As New Dictionary(Of Integer, Byte)
    Dim BmpDifferenceIndexesCompressed As New List(Of Byte)
    Dim BmpDifferenceBytesCompressed As New List(Of Byte)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    SomeSub()
    End Sub
    Private Sub SomeSub()
    ' Pretend this code is in UDP Client app. A screen capture is performed of the desktop. Takes about 90 milliseconds.
    Bmp1Bytes.Clear()
    Using BMP1 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP1)
    g1.CopyFromScreen(0, 0, 0, 0, BMP1.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP1.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp1Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    Bmp1BytesCompressed.AddRange(Compress(Bmp1Bytes.ToArray))
    ' UDP Client app sends Bmp1BytesCompressed.ToArray to UDP Server which is the entire image of the desktop that the UDP
    ' Client is on. This image takes awhile to send since compressed it is about 177000 bytes from over 4000000 bytes.
    ' I will be using different code just to get the bytes from the actual Bitmap in the future. That is not important for now.
    ' Pretend the UDP Server has received the bytes, decompressed the array received into a List(Of Byte) and is displaying
    ' the image of the UDP Clients desktop in a PictureBox.
    ' Now the image on the UDP Clients desktop changes due to the mouse cursor moving as an example. Therefore a new Bitmap
    ' is created from a screen capture. This takes about 90 milliseconds.
    Bmp2Bytes.Clear()
    Using BMP2 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP2)
    g1.CopyFromScreen(0, 0, 0, 0, BMP2.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP2.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp2Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    ' Now I have the original images bytes in Bmp1Bytes and the new images bytes in Bmp2Bytes on the UDP Client. But I don't
    ' want to send all of the bytes in Bmp2Bytes to the UDP Server. Just the indexes of and the bytes that are different in
    ' Bmp2Bytes from Bmp1Bytes.
    ' This takes less than 100 milliseconds for what I've tested so far where over 500000 bytes in Bmp2Bytes are different
    ' than the bytes in Bmp1Bytes. Usually that amount would be much less. But during testing I was displaying the image
    ' from Bmp1 bytes in a PictureBox so a large amount of data would change between the first screen shot, the PictureBox
    ' then displaying an image on the same PC and then the second screen shot.
    BmpComparisonDict.Clear()
    For i = 0 To Bmp1Bytes.Count - 1
    If Bmp1Bytes(i) <> Bmp2Bytes(i) Then
    BmpComparisonDict.Add(i, Bmp2Bytes(i))
    End If
    Next
    ' So now I have all the difference bytes and their indexes from Bmp2Bytes in the BmpComparisonDict. So I compress
    ' the indexes into on List and the Bytes into another List.
    BmpDifferenceIndexesCompressed.Clear()
    BmpDifferenceBytesCompressed.Clear()
    BmpDifferenceIndexesCompressed.AddRange(Compress(BmpComparisonDict.Keys.SelectMany(Function(d) BitConverter.GetBytes(d)).ToArray()))
    BmpDifferenceBytesCompressed.AddRange(Compress(BmpComparisonDict.Values.ToArray))
    ' Now pretend the UDP Client has sent both those arrays to the UDP Server which has added both decompressed arrays
    ' to a Dictionary(Of Integer, Byte). And the server has the original image decompressed bytes received in a List
    ' called Bmp1Bytes also.
    ' This is where I am stuck. The UDP Server has the Dictionary. That part was fast. However there is no
    ' fast method I have found for creating a new List(Of Byte) where bytes in the originally received List(Of Byte) that
    ' do not have to be altered are placed into a new List(Of Byte) except for the indexes listed in the
    ' Dictionary(Of Integer, Byte) that need to be placed into the appropriate index locations of the new List(Of Byte).
    ' The below example for doing so is exceptionally slow. Pretend UpdateDictionary has all of the decompressed indexes
    ' and bytes received by the UDP Server for the update contained within it.
    Dim UpdateDictionary As New Dictionary(Of Integer, Byte)
    Dim UpdatedBytes As New List(Of Byte)
    Dim Counter As Integer = 0
    For i = 0 To Bmp1Bytes.Count - 1
    If i = UpdateDictionary.Keys(Counter) Then ' Provides the index contained in the Keys for the Dictionary
    UpdatedBytes.Add(UpdateDictionary.Values(Counter))
    Counter += 1
    If Counter > UpdateDictionary.Count - 1 Then Counter = 0
    Else
    UpdatedBytes.Add(Bmp1Bytes(i))
    End If
    Next
    ' So what I'm trying to do is find an extremely fast method for performing something similar to what the
    ' above operation performs.
    End Sub
    Private Function Compress(BytesToCompress() As Byte) As List(Of Byte)
    Dim BytesCompressed As New List(Of Byte)
    Using compressedStream = New MemoryStream()
    Using zipStream = New GZipStream(compressedStream, CompressionMode.Compress)
    zipStream.Write(BytesToCompress, 0, BytesToCompress.Count)
    zipStream.Close()
    BytesCompressed.AddRange(compressedStream.ToArray)
    End Using
    End Using
    Return BytesCompressed
    End Function
    Private Function Decompress(BytesToDecompress() As Byte) As List(Of Byte)
    Dim BytesDecompressed As New List(Of Byte)
    Using DecompressedStream = New MemoryStream()
    Using zipStream = New GZipStream(DecompressedStream, CompressionMode.Decompress)
    zipStream.Write(BytesToDecompress, 0, BytesToDecompress.Count)
    zipStream.Close()
    BytesDecompressed.AddRange(DecompressedStream.ToArray)
    End Using
    End Using
    Return BytesDecompressed
    End Function
    End Class
    La vida loca

  • I have a mac osx 10.411G4 powre pc and recently I down loaded excel for mac 2004 the problem that iam having is that the two other programs i downloaded one program it says unable to read the dictionary of the application of the extension because it is no

    I have a mac osx 10.411 power pc and recently i downloaded excel for mac 2004 so that i could download some program that only would work if i have excel for mac but what happen was it went to script and said that unable to read the dictionary of the application of the extension because it is not scriptable and the second pop up said the document autorun,inf could not open script editor can not open files in script editor app can any one help me how do i get these program working  thank you norro460

    good afternoon  Limnos i think  i didnt give the right info I didnt download well in a way i did i bought a copy of microsoft excel for mac 2004 i loaded on to my mac then i went and down loaded some software that said i needed to have excel you see my mac is osx 10.4,11 power pc G4 and that is were i had the problem now  the excell loaded allright but the the other programs did not the pop ups say it is not scriptable or can not read dictionary if you can help m,e iam not great with computers but i  along

Maybe you are looking for