24LC1025 Arduino - Data Writing Problem I have a very big problem by writing a list of strings to an eeprom (24LC1025) Your help with my problem highly appericiated.

I have a data matrix, PageData[111][96] and I want to write all them at once, line by line to the eeprom. I am using arduino for coding. 

the code is :

{

#include &lt;Wire.h&gt;

#define EEPROM_ADDR 0xA0;

void setup()
{

  Wire.begin();         

  Serial.begin(9600);
int PageData[111][96]={ my data is here ... }

 for (t=0; t&lt;111; t++){                                   
  for (unsigned long i=0; i&lt;96; i++){     
    m=i*2;
    value[m] = highByte(PageData[t][i]);
    value[m+1] = lowByte(PageData[t][i]);   }

  at=((t*192));

 for (unsigned long i=0; i&lt; 192; i++) {            
    i2c_eeprom_write_byte(EEPROM_ADDR,(at+i),value[i]);   
    delay(5);                             }
      }

void i2c_eeprom_write_byte( int deviceaddress, unsigned long eeaddress, byte data )
{
if( eeaddress &gt; 65535 )
    deviceaddress = deviceaddress | B00001000;    

    deviceaddress = deviceaddress &gt;&gt; 1;  

  byte rdata = data;
  Wire.beginTransmission(deviceaddress);
  Wire.write((int)(eeaddress &gt;&gt; 8));    // Address High Byte
  Wire.write((int)(eeaddress &amp; 0xFF));  // Address Low Byte
  Wire.write(rdata);
  Wire.endTransmission();
}


My problem in this code: when I want to read the eeprom for the checking the strings, I realize, it does not write the eeprom the whole 111 line. It just writes randomly sometimes half of this sometimes less than this amount. 

I tried several ways to solve the problem. but now I am desperate , please check this and tell me where i miss a point. Please let me know, if any information you need for the answer.
Writing a single byte is really bad. You are causing a page write with each bye, and each page has a limited lifetime (100,000 - 1,000,000 cycles) so use block instead.


  When writing any amount of data, including a single byte using this
  function,   the EEPROM will refresh the entire page (128 bytes) of
  data.   EEPROMs have a limited write endurance (often 1 million cycles
  per page).   Therefore, if you write one byte at a time, instead of
  writing a full block   at once, you are wasting the chip's lifetime
  (doing so is also MUCH slower).   ONLY use this if you really only
  need to write ONE byte, and avoid it   when you can.   Using a block
  write (below), you can write 128 bytes and only use a single   page
  write (or at most two, if the write is not aligned to a page
  boundary).


This library should do the trick for you:
https://github.com/exscape/electronics/tree/master/Arduino/Libraries/EEPROM/EEPROM_24XX1025