Search Results

Search found 4838 results on 194 pages for 'binary heap'.

Page 16/194 | < Previous Page | 12 13 14 15 16 17 18 19 20 21 22 23  | Next Page >

  • 'Binary XML' for game data?

    - by bluescrn
    I'm working on a level editing tool that saves its data as XML. This is ideal during development, as it's painless to make small changes to the data format, and it works nicely with tree-like data. The downside, though, is that the XML files are rather bloated, mostly due to duplication of tag and attribute names. Also due to numeric data taking significantly more space than using native datatypes. A small level could easily end up as 1Mb+. I want to get these sizes down significantly, especially if the system is to be used for a game on the iPhone or other devices with relatively limited memory. The optimal solution, for memory and performance, would be to convert the XML to a binary level format. But I don't want to do this. I want to keep the format fairly flexible. XML makes it very easy to add new attributes to objects, and give them a default value if an old version of the data is loaded. So I want to keep with the hierarchy of nodes, with attributes as name-value pairs. But I need to store this in a more compact format - to remove the massive duplication of tag/attribute names. Maybe also to give attributes native types, so, for example floating-point data is stored as 4 bytes per float, not as a text string. Google/Wikipedia reveal that 'binary XML' is hardly a new problem - it's been solved a number of times already. Has anyone here got experience with any of the existing systems/standards? - are any ideal for games use - with a free, lightweight and cross-platform parser/loader library (C/C++) available? Or should I reinvent this wheel myself? Or am I better off forgetting the ideal, and just compressing my raw .xml data (it should pack well with zip-like compression), and just taking the memory/performance hit on-load?

    Read the article

  • Shell not finding binary when attempting to execute it (it's _definitely_ there)

    - by eegg
    I have a specific set of binaries installed at: ~/.GutenMark/binary/<binaries...> These were previously working correctly, but for seemingly no reason when I attempt to execute them the shell claims not to find them: james@anubis:~/.GutenMark/binary$ ls -al ... -rwxr-xr-x 1 james james 2979036 2009-05-10 13:34 GUItenMark ... -rwxrwxrwx 1 james james 76952 2009-05-10 13:34 GutenMark ... -rwxr-xr-x 1 james james 10156 2009-05-10 13:34 GutenSplit ... james@anubis:~/.GutenMark/binary$ ./GutenMark bash: ./GutenMark: No such file or directory james@anubis:~/.GutenMark/binary$ I've tried to isolate the cause of this, with no success. The same happens with zsh, bash, and sh (all giving their appropriate "file not found" error -- this is definitely not a strange output from the binary itself). The same happens either as user james or as root. Nor is it directory specific; if I move the whole directory installation, or just a single binary, to anywhere else, the same happens when attempting to execute it. The same even happens when I put the directory in $PATH and just execute "GutenMark". It also happens when I execute it from a script (I've tried Python's commands module -- though this appears to just call sh). The problem appears to be specific to the binaries themselves, yet they appear to never actually get executed. Any ideas?

    Read the article

  • Can you tune C runtime heap segment reservation size on XP?

    - by Jason
    When the VC6 C runtime on XP can't serve an allocation request within an existing heap segment, it reserves a new segment. The size of these new segments increase by factors of 2 (until there are not large enough free areas to do that, at which point it falls down to smaller segments.) In any case, is there any way to control this behavior on XP with the VC6 runtime? For example, doubling up to a point, but capping at 64MB segments. If there is no way on XP but there is on 7, that would be good to know too. Or if there is no way on VC6 but there is on VC8 or up would be interesting.

    Read the article

  • How do I know an array of structures was allocated in the Large Object Heap (LOH) in .NET?

    - by AMissico
    After some experimenation using CLR Profiler, I found that: Node[,] n = new Node[100,23]; //'84,028 bytes, is not placed in LOH Node[,] n = new Node[100,24]; //'86,428 bytes, is public struct Node { public int Value; public Point Point; public Color Color; public bool Handled; public Object Tag; } During run-time, how do I know an array of structures (or any array) was allocated in the Large Object Heap (LOH)?

    Read the article

  • MEMORY(HEAP) vs. InnoDB in a Read and Write Environment

    - by Johannes
    I want to program a real-time application using MySQL. It needs a small table (less than 10000 rows) that will be under heavy read (scan) and write (update and some insert/delete) load. I am really speaking of 10000 updates or selects per second. These statements will be executed on only a few (less than 10) open mysql connections. The table is small and does not contain any data that needs to be stored on disk. So I ask which is faster: InnoDB or MEMORY (HEAP)? My thoughts are: Both engines will probably serve SELECTs directly from memory, as even InnoDB will cache the whole table. What about the UPDATEs? (innodb_flush_log_at_trx_commit?) My main concern is the locking behavior: InnoDB row lock vs. MEMORY table lock. Will this present the bottleneck in the MEMORY implementation? Thanks for your thoughts!

    Read the article

  • MEMORY(HEAP) vs. InnoDB in a Read and Write Envirnment

    - by Johannes
    I want to programm a real-time application using MySQL. It needs a small table (less than 10000 rows) that will be under heavy read (scan) and write (update and some insert/delete) load. I am really speaking of 10000 updates or selects per second. These statements will be executed on only a few (less than 10) open mysql connections. The table is small and does not contain any data that needs to be stored on disk. So I ask which is faster: InnoDB or MEMORY (HEAP)? My thoughts are: Both enginges will probably serve SELECTs directly from memory, as even InnoDB will cache the whole table. What about the UPDATAEs? (innodb_flush_log_at_trx_commit?) My main concern is the locking behavior: InnoDB row lock vs. MEMORY table lock. Will this present the bottleneck in the MEMORY implementation? Thanks for your thoughts!

    Read the article

  • How to efficiently convert String, integer, double, datetime to binary and vica versa?

    - by Ben
    Hi, I'm quite new to C# (I'm using .NET 4.0) so please bear with me. I need to save some object properties (their properties are int, double, String, boolean, datetime) to a file. But I want to encrypt the files using my own encryption, so I can't use FileStream to convert to binary. Also I don't want to use object serialization, because of performance issues. The idea is simple, first I need to somehow convert objects (their properties) to binary (array), then encrypt (some sort of xor) the array and append it to the end of the file. When reading first decrypt the array and then somehow convert the binary array back to object properties (from which I'll generate objects). I know (roughly =) ) how to convert these things by hand and I could code it, but it would be useless (too slow). I think the best way would be just to get properties' representation in memory and save that. But I don't know how to do it using C# (maybe using pointers?). Also I though about using MemoryStream but again I think it would be inefficient. I am thinking about class Converter, but it does not support toByte(datetime) (documentation says it always throws exception). For converting back I think the only options is class Converter. Note: I know the structure of objects and they will not change, also the maximum String length is also known. Thank you for all your ideas and time. EDIT: I will be storing only parts of objects, in some cases also parts of different objects (a couple of properties from one object type and a couple from another), thus I think that serialization is not an option for me.

    Read the article

  • sudo apt-get update problem

    - by Jeon
    I have a problem with sudo apt-get update that I can't seem to fix and It's causing problems with alot of installations I want to do. I run Ubuntu 12.04. Ign http://ftp.availo.se precise InRelease Ign http://ftp.availo.se precise-updates InRelease Ign http://ftp.availo.se precise-backports InRelease Ign http://ftp.availo.se precise-security InRelease Get:1 http://repository.spotify.com stable InRelease [2,979 B] Ign http://ppa.launchpad.net precise InRelease Ign http://extras.ubuntu.com precise InRelease Ign http://archive.canonical.com precise InRelease Ign http://ppa.launchpad.net precise InRelease Ign http://ppa.launchpad.net precise InRelease Ign http://repository.spotify.com stable InRelease Ign http://ftp.availo.se precise Release.gpg Ign http://ftp.availo.se precise-updates Release.gpg Ign http://ftp.availo.se precise-backports Release.gpg Ign http://repository.spotify.com stable/non-free amd64 Packages/DiffIndex Hit http://ppa.launchpad.net precise Release.gpg Hit http://ppa.launchpad.net precise Release.gpg Hit http://archive.canonical.com precise Release.gpg Hit http://extras.ubuntu.com precise Release.gpg Ign http://ftp.availo.se precise-security Release.gpg Ign http://repository.spotify.com stable/non-free i386 Packages/DiffIndex Ign http://repository.spotify.com stable/non-free TranslationIndex Hit http://ppa.launchpad.net precise Release.gpg Hit http://archive.canonical.com precise Release Hit http://extras.ubuntu.com precise Release Ign http://ftp.availo.se precise Release Ign http://ftp.availo.se precise-updates Release Hit http://ppa.launchpad.net precise Release Hit http://archive.canonical.com precise/partner amd64 Packages Hit http://extras.ubuntu.com precise/main Sources Ign http://ftp.availo.se precise-backports Release Ign http://ftp.availo.se precise-security Release Hit http://ppa.launchpad.net precise Release Hit http://archive.canonical.com precise/partner i386 Packages Ign http://archive.canonical.com precise/partner TranslationIndex Hit http://ppa.launchpad.net precise Release Hit http://extras.ubuntu.com precise/main amd64 Packages Hit http://extras.ubuntu.com precise/main i386 Packages Ign http://ftp.availo.se precise/main TranslationIndex Ign http://ftp.availo.se precise/multiverse TranslationIndex Ign http://ftp.availo.se precise/restricted TranslationIndex Hit http://ppa.launchpad.net precise/main Sources Hit http://ppa.launchpad.net precise/main amd64 Packages Hit http://ppa.launchpad.net precise/main i386 Packages Ign http://ppa.launchpad.net precise/main TranslationIndex Ign http://extras.ubuntu.com precise/main TranslationIndex Ign http://ftp.availo.se precise/universe TranslationIndex Hit http://ppa.launchpad.net precise/main Sources Hit http://ppa.launchpad.net precise/main amd64 Packages Hit http://ppa.launchpad.net precise/main i386 Packages Ign http://ppa.launchpad.net precise/main TranslationIndex Hit http://ppa.launchpad.net precise/main Sources Hit http://ppa.launchpad.net precise/main amd64 Packages Hit http://ppa.launchpad.net precise/main i386 Packages Ign http://ppa.launchpad.net precise/main TranslationIndex Ign http://ftp.availo.se precise-updates/main TranslationIndex Ign http://ftp.availo.se precise-updates/multiverse TranslationIndex Ign http://ftp.availo.se precise-updates/restricted TranslationIndex Ign http://ftp.availo.se precise-updates/universe TranslationIndex Hit http://repository.spotify.com stable/non-free amd64 Packages Ign http://ftp.availo.se precise-backports/main TranslationIndex Ign http://ftp.availo.se precise-backports/multiverse TranslationIndex Ign http://ftp.availo.se precise-backports/restricted TranslationIndex Ign http://ftp.availo.se precise-backports/universe TranslationIndex Hit http://repository.spotify.com stable/non-free i386 Packages Ign http://archive.canonical.com precise/partner Translation-en_US Ign http://ftp.availo.se precise-security/main TranslationIndex Ign http://ftp.availo.se precise-security/multiverse TranslationIndex Ign http://ftp.availo.se precise-security/restricted TranslationIndex Ign http://ftp.availo.se precise-security/universe TranslationIndex Ign http://repository.spotify.com stable/non-free Translation-en_US Ign http://archive.canonical.com precise/partner Translation-en Ign http://repository.spotify.com stable/non-free Translation-en Ign http://extras.ubuntu.com precise/main Translation-en_US Ign http://extras.ubuntu.com precise/main Translation-en Ign http://ppa.launchpad.net precise/main Translation-en_US Ign http://ppa.launchpad.net precise/main Translation-en Ign http://ppa.launchpad.net precise/main Translation-en_US Ign http://ppa.launchpad.net precise/main Translation-en Ign http://ppa.launchpad.net precise/main Translation-en_US Ign http://ppa.launchpad.net precise/main Translation-en Err http://ftp.availo.se precise/main Sources 404 Not Found Err http://ftp.availo.se precise/restricted Sources 404 Not Found Err http://ftp.availo.se precise/universe Sources 404 Not Found Err http://ftp.availo.se precise/multiverse Sources 404 Not Found Err http://ftp.availo.se precise/main amd64 Packages 404 Not Found Err http://ftp.availo.se precise/restricted amd64 Packages 404 Not Found Err http://ftp.availo.se precise/universe amd64 Packages 404 Not Found Err http://ftp.availo.se precise/multiverse amd64 Packages 404 Not Found Err http://ftp.availo.se precise/main i386 Packages 404 Not Found Err http://ftp.availo.se precise/restricted i386 Packages 404 Not Found Err http://ftp.availo.se precise/universe i386 Packages 404 Not Found Err http://ftp.availo.se precise/multiverse i386 Packages 404 Not Found Err http://ftp.availo.se precise-updates/main Sources 404 Not Found Err http://ftp.availo.se precise-updates/restricted Sources 404 Not Found Err http://ftp.availo.se precise-updates/universe Sources 404 Not Found Err http://ftp.availo.se precise-updates/multiverse Sources 404 Not Found Err http://ftp.availo.se precise-updates/main amd64 Packages 404 Not Found Err http://ftp.availo.se precise-updates/restricted amd64 Packages 404 Not Found Err http://ftp.availo.se precise-updates/universe amd64 Packages 404 Not Found Err http://ftp.availo.se precise-updates/multiverse amd64 Packages 404 Not Found Err http://ftp.availo.se precise-updates/main i386 Packages 404 Not Found Err http://ftp.availo.se precise-updates/restricted i386 Packages 404 Not Found Err http://ftp.availo.se precise-updates/universe i386 Packages 404 Not Found Err http://ftp.availo.se precise-updates/multiverse i386 Packages 404 Not Found Err http://ftp.availo.se precise-backports/main Sources 404 Not Found Err http://ftp.availo.se precise-backports/restricted Sources 404 Not Found Err http://ftp.availo.se precise-backports/universe Sources 404 Not Found Err http://ftp.availo.se precise-backports/multiverse Sources 404 Not Found Err http://ftp.availo.se precise-backports/main amd64 Packages 404 Not Found Err http://ftp.availo.se precise-backports/restricted amd64 Packages 404 Not Found Err http://ftp.availo.se precise-backports/universe amd64 Packages 404 Not Found Err http://ftp.availo.se precise-backports/multiverse amd64 Packages 404 Not Found Err http://ftp.availo.se precise-backports/main i386 Packages 404 Not Found Err http://ftp.availo.se precise-backports/restricted i386 Packages 404 Not Found Err http://ftp.availo.se precise-backports/universe i386 Packages 404 Not Found Err http://ftp.availo.se precise-backports/multiverse i386 Packages 404 Not Found Err http://ftp.availo.se precise-security/main Sources 404 Not Found Err http://ftp.availo.se precise-security/restricted Sources 404 Not Found Err http://ftp.availo.se precise-security/universe Sources 404 Not Found Err http://ftp.availo.se precise-security/multiverse Sources 404 Not Found Err http://ftp.availo.se precise-security/main amd64 Packages 404 Not Found Err http://ftp.availo.se precise-security/restricted amd64 Packages 404 Not Found Err http://ftp.availo.se precise-security/universe amd64 Packages 404 Not Found Err http://ftp.availo.se precise-security/multiverse amd64 Packages 404 Not Found Err http://ftp.availo.se precise-security/main i386 Packages 404 Not Found Err http://ftp.availo.se precise-security/restricted i386 Packages 404 Not Found Err http://ftp.availo.se precise-security/universe i386 Packages 404 Not Found Err http://ftp.availo.se precise-security/multiverse i386 Packages 404 Not Found Ign http://ftp.availo.se precise/main Translation-en_US Ign http://ftp.availo.se precise/main Translation-en Ign http://ftp.availo.se precise/multiverse Translation-en_US Ign http://ftp.availo.se precise/multiverse Translation-en Ign http://ftp.availo.se precise/restricted Translation-en_US Ign http://ftp.availo.se precise/restricted Translation-en Ign http://ftp.availo.se precise/universe Translation-en_US Ign http://ftp.availo.se precise/universe Translation-en Ign http://ftp.availo.se precise-updates/main Translation-en_US Ign http://ftp.availo.se precise-updates/main Translation-en Ign http://ftp.availo.se precise-updates/multiverse Translation-en_US Ign http://ftp.availo.se precise-updates/multiverse Translation-en Ign http://ftp.availo.se precise-updates/restricted Translation-en_US Ign http://ftp.availo.se precise-updates/restricted Translation-en Ign http://ftp.availo.se precise-updates/universe Translation-en_US Ign http://ftp.availo.se precise-updates/universe Translation-en Ign http://ftp.availo.se precise-backports/main Translation-en_US Ign http://ftp.availo.se precise-backports/main Translation-en Ign http://ftp.availo.se precise-backports/multiverse Translation-en_US Ign http://ftp.availo.se precise-backports/multiverse Translation-en Ign http://ftp.availo.se precise-backports/restricted Translation-en_US Ign http://ftp.availo.se precise-backports/restricted Translation-en Ign http://ftp.availo.se precise-backports/universe Translation-en_US Ign http://ftp.availo.se precise-backports/universe Translation-en Ign http://ftp.availo.se precise-security/main Translation-en_US Ign http://ftp.availo.se precise-security/main Translation-en Ign http://ftp.availo.se precise-security/multiverse Translation-en_US Ign http://ftp.availo.se precise-security/multiverse Translation-en Ign http://ftp.availo.se precise-security/restricted Translation-en_US Ign http://ftp.availo.se precise-security/restricted Translation-en Ign http://ftp.availo.se precise-security/universe Translation-en_US Ign http://ftp.availo.se precise-security/universe Translation-en Fetched 2,979 B in 9s (328 B/s) W: GPG error: http://repository.spotify.com stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 082CCEDF94558F59 W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/main/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/restricted/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/universe/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/multiverse/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/main/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/restricted/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/universe/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/multiverse/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/main/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/restricted/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/universe/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise/multiverse/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/main/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/restricted/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/universe/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/multiverse/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/main/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/restricted/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/universe/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/multiverse/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/main/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/restricted/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/universe/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-updates/multiverse/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/main/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/restricted/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/universe/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/multiverse/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/main/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/restricted/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/universe/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/multiverse/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/main/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/restricted/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/universe/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-backports/multiverse/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/main/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/restricted/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/universe/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/multiverse/source/Sources 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/main/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/restricted/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/universe/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/multiverse/binary-amd64/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/main/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/restricted/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/universe/binary-i386/Packages 404 Not Found W: Failed to fetch http://ftp.availo.se/ubuntu/dists/precise-security/multiverse/binary-i386/Packages 404 Not Found E: Some index files failed to download. They have been ignored, or old ones used instead. I would appreciate a fix to this. Thank you for the help.

    Read the article

  • From Binary to Data Structures

    - by Cédric Menzi
    Table of Contents Introduction PE file format and COFF header COFF file header BaseCoffReader Byte4ByteCoffReader UnsafeCoffReader ManagedCoffReader Conclusion History This article is also available on CodeProject Introduction Sometimes, you want to parse well-formed binary data and bring it into your objects to do some dirty stuff with it. In the Windows world most data structures are stored in special binary format. Either we call a WinApi function or we want to read from special files like images, spool files, executables or may be the previously announced Outlook Personal Folders File. Most specifications for these files can be found on the MSDN Libarary: Open Specification In my example, we are going to get the COFF (Common Object File Format) file header from a PE (Portable Executable). The exact specification can be found here: PECOFF PE file format and COFF header Before we start we need to know how this file is formatted. The following figure shows an overview of the Microsoft PE executable format. Source: Microsoft Our goal is to get the PE header. As we can see, the image starts with a MS-DOS 2.0 header with is not important for us. From the documentation we can read "...After the MS DOS stub, at the file offset specified at offset 0x3c, is a 4-byte...". With this information we know our reader has to jump to location 0x3c and read the offset to the signature. The signature is always 4 bytes that ensures that the image is a PE file. The signature is: PE\0\0. To prove this we first seek to the offset 0x3c, read if the file consist the signature. So we need to declare some constants, because we do not want magic numbers.   private const int PeSignatureOffsetLocation = 0x3c; private const int PeSignatureSize = 4; private const string PeSignatureContent = "PE";   Then a method for moving the reader to the correct location to read the offset of signature. With this method we always move the underlining Stream of the BinaryReader to the start location of the PE signature.   private void SeekToPeSignature(BinaryReader br) { // seek to the offset for the PE signagure br.BaseStream.Seek(PeSignatureOffsetLocation, SeekOrigin.Begin); // read the offset int offsetToPeSig = br.ReadInt32(); // seek to the start of the PE signature br.BaseStream.Seek(offsetToPeSig, SeekOrigin.Begin); }   Now, we can check if it is a valid PE image by reading of the next 4 byte contains the content PE.   private bool IsValidPeSignature(BinaryReader br) { // read 4 bytes to get the PE signature byte[] peSigBytes = br.ReadBytes(PeSignatureSize); // convert it to a string and trim \0 at the end of the content string peContent = Encoding.Default.GetString(peSigBytes).TrimEnd('\0'); // check if PE is in the content return peContent.Equals(PeSignatureContent); }   With this basic functionality we have a good base reader class to try the different methods of parsing the COFF file header. COFF file header The COFF header has the following structure: Offset Size Field 0 2 Machine 2 2 NumberOfSections 4 4 TimeDateStamp 8 4 PointerToSymbolTable 12 4 NumberOfSymbols 16 2 SizeOfOptionalHeader 18 2 Characteristics If we translate this table to code, we get something like this:   [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct CoffHeader { public MachineType Machine; public ushort NumberOfSections; public uint TimeDateStamp; public uint PointerToSymbolTable; public uint NumberOfSymbols; public ushort SizeOfOptionalHeader; public Characteristic Characteristics; } BaseCoffReader All readers do the same thing, so we go to the patterns library in our head and see that Strategy pattern or Template method pattern is sticked out in the bookshelf. I have decided to take the template method pattern in this case, because the Parse() should handle the IO for all implementations and the concrete parsing should done in its derived classes.   public CoffHeader Parse() { using (var br = new BinaryReader(File.Open(_fileName, FileMode.Open, FileAccess.Read, FileShare.Read))) { SeekToPeSignature(br); if (!IsValidPeSignature(br)) { throw new BadImageFormatException(); } return ParseInternal(br); } } protected abstract CoffHeader ParseInternal(BinaryReader br);   First we open the BinaryReader, seek to the PE signature then we check if it contains a valid PE signature and rest is done by the derived implementations. Byte4ByteCoffReader The first solution is using the BinaryReader. It is the general way to get the data. We only need to know which order, which data-type and its size. If we read byte for byte we could comment out the first line in the CoffHeader structure, because we have control about the order of the member assignment.   protected override CoffHeader ParseInternal(BinaryReader br) { CoffHeader coff = new CoffHeader(); coff.Machine = (MachineType)br.ReadInt16(); coff.NumberOfSections = (ushort)br.ReadInt16(); coff.TimeDateStamp = br.ReadUInt32(); coff.PointerToSymbolTable = br.ReadUInt32(); coff.NumberOfSymbols = br.ReadUInt32(); coff.SizeOfOptionalHeader = (ushort)br.ReadInt16(); coff.Characteristics = (Characteristic)br.ReadInt16(); return coff; }   If the structure is as short as the COFF header here and the specification will never changed, there is probably no reason to change the strategy. But if a data-type will be changed, a new member will be added or ordering of member will be changed the maintenance costs of this method are very high. UnsafeCoffReader Another way to bring the data into this structure is using a "magically" unsafe trick. As above, we know the layout and order of the data structure. Now, we need the StructLayout attribute, because we have to ensure that the .NET Runtime allocates the structure in the same order as it is specified in the source code. We also need to enable "Allow unsafe code (/unsafe)" in the project's build properties. Then we need to add the following constructor to the CoffHeader structure.   [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct CoffHeader { public CoffHeader(byte[] data) { unsafe { fixed (byte* packet = &data[0]) { this = *(CoffHeader*)packet; } } } }   The "magic" trick is in the statement: this = *(CoffHeader*)packet;. What happens here? We have a fixed size of data somewhere in the memory and because a struct in C# is a value-type, the assignment operator = copies the whole data of the structure and not only the reference. To fill the structure with data, we need to pass the data as bytes into the CoffHeader structure. This can be achieved by reading the exact size of the structure from the PE file.   protected override CoffHeader ParseInternal(BinaryReader br) { return new CoffHeader(br.ReadBytes(Marshal.SizeOf(typeof(CoffHeader)))); }   This solution is the fastest way to parse the data and bring it into the structure, but it is unsafe and it could introduce some security and stability risks. ManagedCoffReader In this solution we are using the same approach of the structure assignment as above. But we need to replace the unsafe part in the constructor with the following managed part:   [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct CoffHeader { public CoffHeader(byte[] data) { IntPtr coffPtr = IntPtr.Zero; try { int size = Marshal.SizeOf(typeof(CoffHeader)); coffPtr = Marshal.AllocHGlobal(size); Marshal.Copy(data, 0, coffPtr, size); this = (CoffHeader)Marshal.PtrToStructure(coffPtr, typeof(CoffHeader)); } finally { Marshal.FreeHGlobal(coffPtr); } } }     Conclusion We saw that we can parse well-formed binary data to our data structures using different approaches. The first is probably the clearest way, because we know each member and its size and ordering and we have control about the reading the data for each member. But if add member or the structure is going change by some reason, we need to change the reader. The two other solutions use the approach of the structure assignment. In the unsafe implementation we need to compile the project with the /unsafe option. We increase the performance, but we get some security risks.

    Read the article

  • unstripped binary or object creating debian package

    - by Jaime
    I'm new to package creation and I'm trying to create a .deb package and keep getting 'unstripped-binary-or-object' on all my libraries and executables. I have everything setup in the directory tree where I want them to end up (and a DEBIAN folder with the control file) and then do fakeroot dpkg-deb --build ./mypackage when I lint with lintian mypackage.deb I get that error. Any ideas or suggestions? Thanks

    Read the article

  • multiple calls to realloc() seems to cause a heap corruption..

    - by Windindeed
    What's the problem with this code? It crashes every time. One time it's a failed assertion "_ASSERTE(_CrtIsValidHeapPointer(pUserData));", other times it is just a "heap corrpuption" error. Changing the buffer size affects this issue in some strange ways - sometimes it crashes on the "realloc", and other times on the "free". I have debugged this code many times, and there is nothing abnormal regarding the pointers. char buf[2000]; char *data = (char*)malloc(sizeof(buf)); unsigned int size = sizeof(buf); for (unsigned int i = 0; i < 5; ++i) { char *ptr = data + size; size += sizeof(buf); char *tmp = (char*)realloc(data, size); if (!tmp) { std::cout << "Oh no.."; break; } data = tmp; memcpy(ptr, buf, sizeof(buf)); } free(data); Thanks!

    Read the article

  • How do I convert decimal numbers to binary in Perl?

    - by David
    I am trying to make a program that converts decimal numbers or text into binary numbers in perl. The program asks for user input of a character or string , and then prints out the result to the console. How do I do this? My code I have been working on is below, but i cannot seem to fix it. print "Enter a number to convert: "; chomp($decimal = <STDIN>); print "\nConverting $number to binary...\n"; $remainder = $decimal%2; while($decimal > 0) { $decimal/2; print $remainder; }

    Read the article

  • How to fetch the data from binary log file and insert in our desired table in MySQL?

    - by Parth
    How to fetch the data from binary log file and insert in our desired table in MySQL? I am on my way of scripting a PHP code for Audit Trail, in this I encountered a situation that if there will be new table created then I will not be available with triggers for that new table and hence no tracking could be done for that, so if I code it to create three new triggers for this new table, then how will get the last change done in this table? Hence I found that Binary Log File can be helpfull for me in this case, to fetch the last change for this new table and insert it in tracking table... BUT HOW????

    Read the article

  • Invalid binary. A pre-release beta version of the SDK was used to build the application.

    - by erik
    Yesterday I submitted an app to the iphone dev center, no problems at all. Today I did some changes to another existing app and was greeted by the following message when I uploaded my binary: The binary you uploaded was invalid. A pre-release beta version of the SDK was used to build the application. I googled the message and didn't find anything at all. I also tried but failed to update another app, same message there. I have not changed anything in between (that I know) and I have certainly not installed or downgraded my SDK. Building for iPhone 3.0..

    Read the article

  • What language is to binary, as Perl is to text?

    - by ehdr
    I am looking for a scripting (or higher level programming) language (or e.g. modules for Python or similar languages) for effortlessly analyzing and manipulating binary data in files (e.g. core dumps), much like Perl allows manipulating text files very smoothly. Things I want to do include presenting arbitrary chunks of the data in various forms (binary, decimal, hex), convert data from one endianess to another, etc. That is, things you normally would use C or assembly for, but I'm looking for a language which allows for writing tiny pieces of code for highly specific, one-time purposes very quickly. Any suggestions?

    Read the article

  • What's the big difference between those two binary files?

    - by Lela Dax
    These are two files (contained in the tar.bz2) that were generated using a just-in-time compiler for a game engine. The generated code from ui-linux.bin is from a x86_64 gcc compiler and the ui-windows.bin from the same brand of compiler but targetting win x86_64 (mingw-w64). I've attempted to debug a problem that occurs only on the windows version and i stumbled upon what it seems to be different end-binary code. However, the input assembly code was virtually identical (only difference being pointer representations as int). (there's theoretically no winabi/unixabi conflict since that's taken care of by an attribute flag on certain declarations involved). Any idea what it might be that makes these two binary codes different? The C for the mini-compiler and base assembly producing it appears compatible at first glance. http://www0.org/vm/bins.tar.bz2

    Read the article

  • How to find largest common sub-tree in the given two binary search trees?

    - by Bhushan
    Two BSTs (Binary Search Trees) are given. How to find largest common sub-tree in the given two binary trees? EDIT 1: Here is what I have thought: Let, r1 = current node of 1st tree r2 = current node of 2nd tree There are some of the cases I think we need to consider: Case 1 : r1.data < r2.data 2 subproblems to solve: first, check r1 and r2.left second, check r1.right and r2 Case 2 : r1.data > r2.data 2 subproblems to solve: - first, check r1.left and r2 - second, check r1 and r2.right Case 3 : r1.data == r2.data Again, 2 cases to consider here: (a) current node is part of largest common BST compute common subtree size rooted at r1 and r2 (b)current node is NOT part of largest common BST 2 subproblems to solve: first, solve r1.left and r2.left second, solve r1.right and r2.right I can think of the cases we need to check, but I am not able to code it, as of now. And it is NOT a homework problem. Does it look like?

    Read the article

  • How can I detect if a file is binary (non-text) in python?

    - by grieve
    How can I tell if a file is binary (non-text) in python? I am searching through a large set of files in python, and keep getting matches in binary files. This makes the output look incredibly messy. I know I could use grep -I, but I am doing more with the data than what grep allows for. In the past I would have just searched for characters greater than 0x7f, but utf8 and the like make that impossible on modern systems. Ideally the solution would be fast, but any solution will do.

    Read the article

  • Chess board position numbers in 6-rooted-binary tree?

    - by HH
    The maximum number of adjacent vertices is 6 that corresponds to the number of roots. By the term root, I mean the number of children for each node. If adjacent square is empty, fill it with Z-node. So every square will have 6 nodes. How can you formulate it with binary tree? Is the structure just 6-rooted-binary tree? What is the structure called if nodes change their positions? Suppose partially ordered list where its units store a large randomly expanding board. I want a self-adjusting data structure, where it is easy to calculate distances between nodes. What is its name?

    Read the article

  • how to display a binary content of image/pdf in java script?

    - by Ka-rocks
    I have a binary content of image/pdf in java script variable downloaded from server. There will be indication server about the typr of the file. I have to display the content in respective file format. If it is image , i have to display the image. If it is a pdf, i have to open the content in pdf format. and so on. How to parse the binary content and display it? I have searched for it. But I couldn't find exact solution. I'm using jquery mobile framework. Pls help..

    Read the article

  • Would you store binary data in database or in file system?

    - by paul
    This is a question which has been asked before (large-text-and-images-in-sql) but mainly for data which will be changed. In my case the data will be stored and never changed. Just seems sensible to keep everything together. Are there any reasons why I should not store static binary data in a database? Assuming it is a sensible thing to do, are there any advantages to storing such data in separate tables? (You might begin to realise now that I'm not a DB expert...) Clarify: There will probably be no more than 10-20 users but these will be in the US and in the UK. The binary data will have to be transfered in any case.

    Read the article

  • question about siftdown operation on heap

    - by davit-datuashvili
    i have following pseudo code which execute siftdown operation on heap array suppose is x void siftdown(int n) pre heap(2,n) && n>=0 post heap(1,n) i=1; loop /*invariant heap(1,n) except perhaps between i and it's (0,1,or 2) children*/ c=2*i; if (c>n) break; // c is left child of i if (c+1)<=n /* c+1 is rigth child of i if (x[c+1]<x[c]) c++ /* c is lesser child of i if (x[i]<=x[c]) break; swap(c,i) i=c; i have wrote following code is it correct? public class siftdown{ public static void main(String[]args){ int c; int n=9; int a[]=new int[]{19,100,17,2,7,3,36,1,25}; int i=1; while (i<n){ c=2*i; if (c>n) break; //c is the left child of i if (c+1<=n) //c+1 ir rigth child of i if (a[c+1]<a[c]) c++; if (a[i]<=a[c]) break; int t=a[c]; a[c]=a[i]; a[i]=t; i=c; } for (int j=0;j<a.length;j++){ System.out.println(a[j]); } } } // result is 19 2 17 1 7 3 36 100 25

    Read the article

< Previous Page | 12 13 14 15 16 17 18 19 20 21 22 23  | Next Page >