Bit comparison on binary files

Hi
I am trying to compare two binary files in order to find out how many bits differ between the two files. I dont know how to reference file 'bits' in order to perform the comparison however, and i cannot find much information online. Can anybody give me some pointers on how to start or point me towards some helpful information?
Thanks

Read the files in bytes.
XOR the corresponding bytes. Only bits that differ will be 1.
AND with 0x01 to see if the low order bit is 1. Shift right and repeat for the rest of the bits.

Similar Messages

  • 64 bit RHEL 4 - runInstaller: cannot execute binary file

    I have downloaded Forns and Reports services install of application server for itanium linux. When trying to run the installer, I get:
    /opt/oracle/depot/Disk1/runInstaller: line 135: /opt/oracle/depot/Disk1/install/runInstaller: cannot execute binary file
    Google brought back hits about 32-bit installer on 64-bit linux. This is 64-bit installer on 64-bit linux:
    file /sbin/init
    /sbin/init: ELF 64-bit LSB executable, AMD x86-64 ...
    file /opt/oracle/depot/Disk1/install/runInstaller
    /opt/oracle/depot/Disk1/install/runInstaller: ELF 64-bit LSB executable, IA-64, ...
    Any help is appreciated.

    linux32 bash

  • Binary file read with bit offset..not byte offset.

    hi,
               i want to read a binary file with some offset ..not in bytes...  offset in bits..my data is a single bit data stream size of 1GB ,after skipping particular bit offset i want to read the data in byte order..
    Indrajit
    | [email protected] | [email protected] .

    hi , Gerd W 
                       i am not able to follow your answer.... here with i attached a file to describe my query more clearly.   Actually two channels of  1 bit data stream stored in two different files ,and the file size will be more than 10 GB. 
     i want to delay the channel B by 3 bits and i want to perform bitwise operation between channel A and shifted version of channel B..till the end of the data..
    now i am doing this without applying any delay by choosing a small block by block which corresponds to 1 sec of data .
    Indrajit
    | [email protected] | [email protected] .
    Attachments:
    bitwsie.png ‏16 KB
    bitwsie.jpg ‏52 KB

  • Problem saving 2D array to binary file

    I am getting some strange results when trying to write a transposed 2D array of Unisgned 8-bit data to a binary file. Attached is an example program ("071026_ArraySave_Bug.vi") which demonstrates the suspicious behavior.
    The program generates a small 2D array of U8 data, then saves it to two temporary files using two different methods.
    1) Row-by-row: The 2D array is auto-indexed, and the indexed row is written to file at once (with the prepended size option disabled).
    2) Point-by-point: Two For loops are used to auto-index each element and write it to file individually.
    The saved files are then reopened and the data is read into two 1D arrays for display.
    The bug occurs when the generated 2D array is transposed before being saved to file. In the point-by-point method, the data is always saved to the file as desired, i.e. by row or by column depending on whether the data was transposed. However, in the row-by-row method the data is incorrectly saved when the input data is transposed. Without transposing the array, the row-by-row results are correct.
    Saving the array row-by-row is significantly faster for larger arrays, so this method is desired.
    Note that the option to transpose the input data in the attached VI is performed using a case structure with a boolean constant ("Bug Control"). This is important because:
    1) The bug does not occur if the boolean constant is replaced with a control.
    2) The bug does not occur if the case structure is replaced with a "Select" node from the Comparison Palette.
    3) The bug still occurs if the case structure is removed such that the array is always transposed (i.e. keep the True case).
    For now, I have been able to circumvent the bug in practice by transposing the array and then passing it through a Select with a constant True (the False case uses the untransposed array). This allows the faster row-by-row method to be used without error, but requires new memory allocation for the transposed array.
    I will appreciate any help that can be given regarding this problem, or simply confirmation that it is indeed a bug in Labview 8.5. It is worth noting that the same program did not produce any errors when run in Labview 7.
    Thank you for your help,
    David Viggiano
    Attachments:
    071026_ArraySave_Bug.vi ‏29 KB

    This is a known bug (CAR : 4DP855N3) , related to memory management. see this thread
    If I remember well, Altenbach shown somewhere that forcing the transpose operation to produce a copy of the memory was a proper workaround.
    Message Edité par chilly charly le 10-26-2007 08:40 PM
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        
    Attachments:
    071026_ArraySave_Bug[1].png ‏2 KB

  • Fulltext search of binary files outside of database in SQL 2012/Server 2012

    This may be more of a Windows Server 2012 question but I'm not sure.
    I have a system that holds large amounts of binary files (pdf, doc, etc.).  The files themselves are held outside the database in a folder and a SQL table holds the metadata.  I used the Indexing Service available through Windows Server 2008 to
    create a catalog called "EFCATALOG" to index the contents of the external folder, then created a linked server called MYIDXS which allowed me to query that external indexing catalog from within SQL with a query like this:
    EXEC sp_addlinkedserver MYIDXS, 'Internal App', 'MSIDXS', 'EFCATALOG'
    SELECT * FROM MYDOCS
    LEFT JOIN OPENQUERY(MYIDXS,'SELECT FILENAME FROM SCOPE() WHERE CONTAINS (''test'')') AS MYTBL
    ON MYDOC_FILE_NAME = MYTBL.[FILENAME]
    With Windows Server 2012, I'm missing the functionality to create the indexing service catalog.  I've added the Windows Search Service and see how I can configure folders for searching, but there is no naming functionality for this and I don't see how
    I can get the above query/structure to work in Windows Server 2012/SQL Server 2012 environment.  In fact, there isn't much at all online regarding the search service or the relationship back to the older versions in 2008 and before.
    Is there any way to continue this structure in 2012?  I would like to avoid recoding my application to work with a different structure.  I'm afraid that changing everything to work with the FILETABLE/FILESTREAM functionality added in SQL 2012
    will be necessary which is fine long term, but not convenient right now.
    Thanks in advance for any suggestions/help.

    Thank you Fanny Liu, based on your link the syntax has changed dramatically. I need to query SYSTEMINDEX now and the structure is very different.    It still seems that this new syntax requires creating a linked server of a different type. 
    I've tried:
    EXEC sp_addlinkedserver @server = 'TEST', @provider = 'Search.CollatorDSO.1', @datasrc = 'SYSTEMINDEX', @srvproduct = '', @provstr='Application=Windows'
    SELECT FileName FROM OPENQUERY("TEST", 'SELECT Filename FROM SYSTEMINDEX')
    Msg 7302, Level 16, State 1, Line 1
    Cannot create an instance of OLE DB provider "Search.CollatorDSO.1" for linked server "TEST".
    I've also tried using just "Search.CollatorDSO"as the provider since that is the provider name listed in management studio but basically the same error comes back.
    So I have 2 questions:
    1) Is it possible for my original process to work in Windows Server 2012 in any way (meaning that the OPENQUERY example I provided can remain relatively unchanged)?
    2) If change is necessary using this new SYSTEMINDEX and linked server combination, why is my linked server definition failing?  I'm using SQL Server 2012....Microsoft SQL Server 2012 - 11.0.2100.60 (X64)
     Feb 10 2012 19:39:15
     Copyright (c) Microsoft Corporation
     Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
    Thank you.

  • Read an avi file using "Read from binary file" vi

    My question is how to read an avi file using "Read from binary file" vi .
    My objective is to create a series of small avi files by using IMAQ AVI write frame with mpeg-4 codec of 2 second long (so 40 frames in each file with 20 fps ) and then send them one by one so as to create a stream of video. The image are grabbed from USB camera. If I read those frames using IMAQ AVI read frame then compression advantage would be lost so I want to read the whole file itself.
    I read the avi file using "Read from binary file" with unsigned 8 bit data format and then sent to remote end and save it and then display it, however it didnt work. I later found that if I read an image file using "Read from binary file" with unsigned 8 bit data format and save it in local computer itself , the format would be changed and it would be unrecognizable. Am I doing wrong by reading the file in unsined 8 bit integer format or should I have used any other data types.
    I am using Labview 8.5 and Labview vision development module and vision acquisition module 8.5
    Your help would be highly appreciated.
    Thank you.
    Solved!
    Go to Solution.
    Attachments:
    read avi file in other data format.JPG ‏26 KB

    Hello,
    Check out the (full) help message for "write to binary file"
    The "prepend array or string size" input defaults to true, so in your example the data written to the file will have array size information added at the beginning and your output file will be (four bytes) longer than your input file. Wire a False constant to "prepend array or string size" to prevent this happening.
    Rod.
    Message Edited by Rod on 10-14-2008 02:43 PM

  • Binary File Operations

    I need to collect 64-bit blocks from a file to pass to an encryption method which will perform a few permutations and use various binary operators on the block and a series of keys. The easiest way to program the encryption method will be to use an array of boolean values to manipulate the binary data. I need to get this array from the file somehow.
    I am sure there is a simple way to create an array of 64 boolean objects directly from the file but can't for the life of me find a way to do it simply.
    Thanks for the help

    Thanks for your reply. Havent used bitset before but
    I will look into it. I was trying to avoid converting
    from byte just because it seems strange that I cant
    access the raw binary data. What do you mean by 'cant access raw binary data'?
    You can, but unfortunately in formats that are not very convenient for you:
    long,int,byte[], whatever DataInputStream provides. I am more surprised by the fact that BitSet does not have a constructor that takes a byte[], and perhaps a getBytes() method.
    If I do have to do this whats the easiest method?
    Just using the divide by two and check remainder or
    is there a better way?I would do this inside a loop:
    boolArray[ i ] = (( value & 1 ) == 0 );
    value = (value >> 1);

  • Problem when streaming out a binary file

    Hi,
    I am trying to stream out a binary file to an output stream (not a file, but a socket). My file is a gzip file, and I was initially simply trying to open the
    file, read it to a a byte array, and writing it out to my output stream. However, I got corrupted data at my other end and it took me quite a bit of
    debugging hours to find out why.
    I tried writing to a file the same information I was writing to my output stream but, although my file was correct, my output stream still contained
    corrupted data.
    I think I have finally narrowed down my problem to the fact that when I try to write a 0x00 value to my output stream, everything gets ignored from this
    point until I write a 0x0a byte to my output stream. Obviously this produces corrupted data, since I need all the bytes of my binary file.
    If somebody can direct me as to how to write a 0x00 value to a socket output stream, I would really appreciate your input.
    This is a sample of my code (Right now I am writing byte by byte: not very efficient, but was the only way I found where I was getting a problem):
    // out is of type OutputStream
    if (Zipped){
         // In this case we just have to stream the file out
    File myFile = new File(fileName);
         FileInputStream inputFile = new FileInputStream(myFile);
         FileOutputStream fos = new FileOutputStream(new File("/tmp/zip.gz")); //zip.gz results in a good (not corrupted) file.
         ByteArrayOutputStream out1 = new ByteArrayOutputStream(1024);
         int bytes = (int)myFile.length();
         byte[] buffer = new byte[bytes];
         bytes = inputFile.read(buffer);
         while (bytes != -1) {
              out1.write(buffer,0,bytes);
              bytes = inputFile.read(buffer);
         inputFile.close();
         try {
              int count=0;
              bytes=out1.size();
              while (count<bytes){
                   fos.write(buffer,count,1);
    out.write(buffer,count,1); // when buffer[count] == 0x00, everything after it gets ignored until a 0x0a byte is written.
                   count++;
         } catch (IOException ioe) {
              SysLog.event("IOEXCEPTION: "+ioe);
         } catch (Exception e) {
              SysLog.event("EXCEPTION: "+e);
         fos.flush();
         fos.close();
         out.flush();
    out.close();
         return;
    }

    Actually, I had thought about that and for some time I tried getting rid of some of the header information in the gzipped file, and then I stopped doing that when I realized that part of the gzipped file is a CRC value which I believe is computed taking into account both the data of the file and the header information. If this is the case, then getting rid of part of the header would produce a corrupted file ... but then, I might be wrong in this issue.
    Anyway, to make my application more clear, what I am doing is writing the code for a cgi command which is suppossed to access information from a database, create an xml file, gzip it, and then send it to the client who requested the information.
    Therefore, what I am sending is an xml file (Content-Type: text/xml) in compressed format (Content-Encoding: gzip). Note that if I don't gzip the file and then send it uncompressed to the client, I have no problems. However, for me it is very important to gzip it because the size of the file can get very large and that would just take bandwidth unnecessarily.
    On the other hand, if I try to gunzip the file locally, I have no problem either (the file is not corrupt at the server's end). Therefore, my problem is when I stream it out.
    Any further help would be really appreciated!

  • Writing binary files & trouble with no unsigned byte type

    I've got a fair amount of Java experience, enough to know what I'm doing most of the time but I do have a vast experience with C & C++ which helps my Java. I've stumbled across a problem when trying to write out files in binary.
    If I was to write out a binary file, I would always choose C/C++ to do this because simply because I'm at ease with the implementation.
    I've now written a Java program which needs to output a file in binary and I'm having real issues doing the most simple things because of no unsigned support.
    I want to write out elements byte-by-byte and make use of the 8-bits provided in the byte type in Java.
    Let's assume I've done my processing and I end up with an int. I know that this int is 0-255 in value. I now want to pack it into a byte and write it to my file. How do I go about assigning the byte without Java 'converting' it to a signed byte? I simply want to copy the lower 8-bits of the int and duplicate them into the byte variable - no conversion.
    In C you would do something like this:
    char mySignedChar = *( (char*)&(unsigned char)myInt ) );
    What's the Java equivalent? Am I going about this the right way?

    Whether a byte is signed or unsigned only matters if one is doing arithmetic on it. If the int is 0-255 then you just cast to a byte using
    byte theByte = (byte)theIntValue;When reading back you just use
    int theByteAsAnInt = theByte & 0xff;

  • Write to binary file

    I have a relatively large 3D array (Phase Settling), which I want to store in a Binary File. The array is a 15000 point sweep (after decimation), repeated up to 48 by 48 times (in two FOR loops, one inside the other), meaning it can end up having as many as 34,560,000 data points. At the moment, I am attempting to dump that 3D array into a Binary File in one go, using the following VI. There are two possile versions of this array (both the same size as each other) and, depending on which has just been tested, they will be written to their own individual file. Once both tests have been run and their results stored, the idea was to open both files, subtract one array from the other, and store the new 3D array to another Binary File whilst also displaying this latest data elsewhere in a higher-level VI.
    After its first trial run, LabVIEW presents me with an error message saying something along the lines of "LabVIEW had run out of memory". I assume it would be to do with this VI, since that's where the first error code appeared (Error Code: 2), apparently originating in a 'Write to Binary File' function.
    Any ideas as to how I could get round this first hurdle, or perhaps an alternative method I could try?
    Thank you.
    - James
    Message Edited by James Mamakos on 04-08-2010 10:07 AM
    Never say "Oops." Always say "Ah, interesting!"
    Attachments:
    Running out of LabVIEW memory when writing to binary file.PNG ‏30 KB

    Well, as shown in the attached screen-shot, the error indicator shows an error code of 2, and that the error occurred in one of the Write to Binary File functions.
    However, when trying to save this particular VI after a couple of tweaks, I was presented with the following pop-up alert message:
    LabVIEW:  Memory is full.
    Cannot save VI "Compare Amp - calculate.vi".
    LabVIEW Save error code 10: Default data space.
    Anyway, returning back to the main problem at hand, I've though of a couple of possible solutions...
    We don't really need a particularly high resolution to the data points for the comparison, so I could convert the array doubles into an array of singles to save space.
    I should be able to implement the 'Write to Binary File' for the initial arrays into the outer FOR loop, thereby reducing the amount data written in each instance by a factor of up to 48. The only problem I can foresee in this is that I'm not sure how to append 2D arrays into a binary file such that, when the file is read, they would appear as (or be easily converted into) a 3D array.
    As for the 'True' case in my case structure, am I being grossly inefficient in my passing of data from one place to the next? I know there are a lot of branches (and buffers?) of 3D arrays; is there a decent way to reduce this overhead by tweaking the data paths or something?
    - James
    P.S. The computer I'm using has 1GB RAM.
    Message Edited by James Mamakos on 04-08-2010 12:39 PM
    Never say "Oops." Always say "Ah, interesting!"
    Attachments:
    LabVIEW - error code 2.PNG ‏35 KB

  • Display PDF in different window by reading Binary file in MIME folder.

    Hi all,
    I've kept binary file in MIME folder and I'm trying to read the contents of it. and I'm trying to display contents in pdf format in separate window.
    For this I was able to read the file by using FileInputStream
    byte[] bytes = new byte[1000];
         try
                  //File file = new File(WDURLGenerator.getResourcePath(wdComponentAPI.getDeployableObjectPart(),"data.bin"));
                   File file = new File(WDURLGenerator.getResourcePath("test.bin"));
                   FileInputStream is = new FileInputStream(file);
                  long length = file.length();
                   //Create the byte array to hold the data
                   byte[] bytesA = new byte[(int)length];
                   //Read in the bytes
                    int offset = 0;
                    int numRead = 0;
                    while (offset < bytesA.length&& (numRead=is.read(bytesA, offset, bytesA.length-offset)) >= 0)
                         offset += numRead;
                        is.close();
                   bytes = bytesA;
                   wdContext.currentContextElement().setPdfSource(bytes);
                 catch(Exception e)
                   wdComponentAPI.getMessageManager().reportException("Error Reading File:"+e.getCause(),true);
                   wdComponentAPI.getMessageManager().reportException("Error Reading File To String:"+e.toString(),true);
    I've to show this in external window. I created attribute "pdfResource" of type binary
    and declared in the source
    private ISimpleType myPdfDoc;
    After that I added this bit of code in Init Method
    myPdfDoc = wdContext.getNodeInfo().getAttribute("pdfResource").getModifiableSimpleType();
    ((IWDModifiableBinaryType)myPdfDoc).setMimeType(WDWebResourceType.PDF);
    ((IWDModifiableBinaryType)myPdfDoc).setFileName("PDF");
    After this I made an action handler which has following code.
    final byte[] documentContent = bytes
    final String docUrl = myPdfDoc.format( bytes );
    String docUrl = myPdfDoc.format(bytes);
    IWDWindow window = wdComponentAPI.getWindowManager().createExternalWindow(docURL,"Resource", true);
    window.open();
    But it is throwing Null Pointer exception for Init Method and also while displaying.
    Where is that I'm faltering. Any Pointers will be help ful
    Thanks
    Srikant

    First of all why do you need those three lines of code in your wdDoInit() ?
    Simply, you may use this:
    IWDCachedWebResource cachedResource = null;
    String url = null;
    byte[] pdf = wdContext.currentContextElement().getPdfSource();
    if (pdf != null) {
       cachedResource = WDWebResource.getWebResource(pdf, WDWebResourceType.PDF);
       url = cachedResource.getURL();
    Refer <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/4a/fb8342a7d30d53e10000000a155106/content.htm">Utilizing the IWDCachedWebResource-API</a> for further assistance.
    /* Changed the code */
    Message was edited by: Bala Krishnan

  • Read From Binary File doesn´t work on MCB2400 in LV2009 Embedded ARM

    Hello,
    I try to read a Binary File from SD-Card on my MCB2400 Board with LV2009 Embedded for ARM.
    But the output is always 0, if I use my VI on the MCB2400. If use the same VI on the PC it works fine with the same binary file.
    The
    access to the SD-Card on the MCB2400 works in other cases finde, if I
    try to read from a text-file it works without any problems.
    Are thre any constraints for the "Read From Binary File"-Node in Embedded in comparison to the same node on PC ?
      I have noticed that there is also a problem
    with the reading of textfiles. If the sice of the file is about 100Byte
    it doesn´t work anymore, too. I can´t understand it, because I read
    always just one Byte. And even if the implementation in Labview is so
    bad that it allways reads the total file in the ram it sould work. The
    MCB2400 has 32MegaByte RAM, so 100Byte or even a few MegaByte should
    work.
    But this doesn´t seem to be the Problem for the Binary-Problem. Because even a 50byte Binary-File doesn´t work.
    bye & thanks
    amin
    Solved!
    Go to Solution.
    Attachments:
    SD_Card_Read-test.vi ‏12 KB

    Hello,
    thank you for your Help.
    But I just want to read a Binary File, which is build by another program. And this is coded with 8Bit (like a normal Binary File) and not just with 7Bit (ASCII). So the workaround doesn't work in my case.
    I posted the Test-VI in my first post (here once again as picture). And it works fine on the PC, but if I try it on my MCB2400 the "Read Form Binary File" Node doesn't work.
    And it is also possible to open the Bin file with the "Read Text File" Node and see the cryptic content of the Bin-File. So the Problem seems to be in the "Read Form Binary File" Node.
    bye & thanks again
    amin
    Message Edited by aminat on 09-30-2009 03:28 AM

  • How to count bit patterns in a file ?

    Think of the following:
    You have two files that you want to compare bit by bit.
    A file has been send the other one has been received.
    The two files can be of different size (Connection lost).
    But you not only want to know how many bits are different you want also to know the run length of the different bits.
    For example:
    File 1:                      1010101011101010111101011001
    File 2:                      1011101010001101010111010101
    What is the result ?
    Xor File1 and File2:   0001000001100111101010001100
    Run Length 1:           3
    Run Length 2:           2
    Run Length 3:           0
    Run Length 4:           1
    I hope I didn't make a mistake.
    Think also of using a blocksize for comparison.
    Maybe you don't want to compare the files as a whole but want to know the number of errors for every block that is maybe 256 bit or 1024 bit. So read the files block by block, xor the blocks and count the bit errors by their run length.
    So how can I get this result in LabView ?
    Which data types do I have to take for comparison ? Which VIs do I have to use ?
    Thanx for help and your time

    Hi Allen,
    thanks for your posting.
    I have now a working version.
    For my as LabView newbee this was really hard work.
    So how many bit patterns of "1" or "11" or "111" or "1111" are in the xor result of the two files ?
    Or you can also ask: How long is the error (Burst error) ? And how often does it occur ?
    Look for example for block error codes and this stuff.
    Attached is the VI and two small text files (Both 10 Bytes).
    I've tried a blocksize of 10 Bytes and also 5 Bytes.
    The result is:
    1     2     3      4
    16   5     1      1
    So there 16 errors of run length 1, 5 of run length 2 and so on.
    Would be also nice to count special bit patterns like '1001101010111" or something like that.
    But I think this is more easy.
    Not the pattern is searched. The first 1 and the following 0 is searched.
    The run length is used as index.
    Attachments:
    Filediff 4.vi ‏32 KB
    Kopie1 von REAMDE.txt ‏1 KB
    Kopie2 von REAMDE.txt ‏1 KB

  • Binary file data plugin : append block values to channel

    I need to create a data plugin for a unique binary file structure, which you can see in the attached graphic.
    With these objects
    Dim sBlock : Set sBlock = sFile.GetBinaryBlock()
    sBlock.Position = ? 'value in bytes
    sBlock.BlockWidth = ? 'value in bytes
    sBlock.BlockLength = ? 'value in bits
    I have the possiblity to read chunks from my binary file. At the end, I want to have each signal in a respective channel. I could manage to extract signals 1 and 2, as they only have one value in each block with a known byte-distance in between. How can I extract the other channels, that have 480 successive values in each block? I could probably write a loop and read the specific signal part in each block, but how can I append these parts to the relevant channels? I tried by creating a new channel and then merging them, but unfortunately functions like ChnConcat are not working in a data plugin. Any ideas?
    /Phex
    PS. Of course I could create a hideous plugin with running GetNextBinaryValue() throught the whole file, but that doesn't seem to be a smart idea for a 2 GB file size.
    Attachments:
    KRE_DataPlugin_schematic.JPG ‏84 KB

    Phex wrote:
    @usac:
    Your workaround seems to work at least for part of the file. If I loop it through the whole 1.5 GB file I am getting the DLL error "The application is out of memory". There is enough dedicated RAM available, but I guess this is x86 related.
    Hello Phex,
    Have you tried running this Script in the DIAdem 64-bit preview version (which gets you access to more than 2 GB or RAM for your application) that can be found at http://www.ni.com/beta and can be installed in parallel to the 32-bit version.
    It might get you around the "out of memory" issue ...
          Otmar
    Otmar D. Foehner
    Business Development Manager
    DIAdem and Test Data Management
    National Instruments
    Austin, TX - USA
    "For an optimist the glass is half full, for a pessimist it's half empty, and for an engineer is twice bigger than necessary."

  • Can a binary file be read incrementally?

    I have a situation where I would like to do repeated incremental reads (i.e., N bytes at a time) from a binary file. My understanding of the Read Binary File VI is that you open the file, read N bytes from the file, and close the file - i.e., do a SINGLE read. I don't want to read the WHOLE file into memory at one gulp; I want to keep repeating the N-byte read operation in an indefinite loop, until I say to stop. On each read I will be updating a graph with the last data read.
    (OK, some more detail: I am monitoring 32 digital lines using some external equipment that writes the file. Each time one of the digital lines changes value, 10 bytes are written: a 48-bit timestamp and 32 bits for the current digital values. The file is a continuous little-endian raw concatenation of these 10-byte records, with no header or record markers. In LV 8.21 (under WinXP) I want to generate a scrollable display of the 32 digital traces, by reading a block of data as needed whenever I want to advance the display.)
    What is the suggested way to handle this kind of binary reading? (I am willing to write C code if necessary.) Any useful responses will be appreciated.
    dhfx

    This may be lower level than you were looking for.  As already mentioned, the big problem may be having two applications accessing the file simultaneously.
    Jim
    Jim
    LV 2013
    Attachments:
    ReadBinary.png ‏4 KB

Maybe you are looking for