EEPROM, Internal Storage, Write alpha or numerical value

Equipment: Arduino UNO, Spark Fun LCD shield V.1.

Project Goals: Request users to input their name using the LCD shield buttons (up/down/left/right) and scroll through the letters with up and down. The name value is a variable length. Up/down should scroll through the alphabet, left and right should move the cursor, and select should save the value and default the value to all zero's.
The cursor should blink, (I have used the flashing block) but would prefer the flashing underscore (if possible).
When the user depresses the select button the value should be saved in the EEPROM. Reading some posts, this can be accomplished by converting each value to a decimal and save the value one byte (IE..if user puts the name COW in the LCD shield, C=67, O=79, W=87. I would like Byte 0=67 (C), Byte 1=79 (O) and Byte 2=87 (W). I am unclear how to do this part.
I have attached my code, this is a hobby for me, and I had been using Parallax before-please be kind ;D


#include <LiquidCrystal.h>
#include <EEPROM.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int ans = 0;
int a = 0; //used for moving the cursor left or right.
int addr = 0;

void setup() {
 lcd.begin(16, 2);
 lcd.setCursor(0,0);
 lcd.print("Enter value:");
// Turn on the blinking cursor:
 lcd.blink();
 delay(3000);

}

void loop() {

 int x; 
 x = analogRead (0); //read the button input value
 lcd.setCursor(a,1); //variable 'a' set to 0 in the global setup


 if (x < 60) {
  //right button
  a++;
  ans = 0; 
 }
 else if (x < 200) {
 //up button
   ans++;
   lcd.print(ans); 
 }
 else if (x < 400){
 //down button
   ans--;
   lcd.print(ans);
 }
  else if (x < 600){
  //left button
    a--;   
 }
 else if (x < 800){
//want to use this to save the value and move onto another function.

 }
  delay(200);
  
   // write the value to the appropriate byte of the EEPROM.
 // these values will remain there when the board is
 // turned off.
 EEPROM.write(0, a);
}

On EVERY pass through loop(), you write a value to EEPROM. That will wear out your EEPROM very quickly. Are you sure you want to do that?

I don't like one letter variable names. Just what does "a" contain/mean? It appears to be a screen position. Why is writing that to EEPROM important?

PaulS:
On EVERY pass through loop(), you write a value to EEPROM. That will wear out your EEPROM very quickly. Are you sure you want to do that?

I don't like one letter variable names. Just what does "a" contain/mean? It appears to be a screen position. Why is writing that to EEPROM important?

Thank you for the reply, I have been doing some reading on the forum page and googling and see that saving to the EEPROM will not be a viable solution. I am looking into saving data to an SD card instead of EEPROM. I also have found some code that i could manipulate, minus the write to EEPROM library that does some housecleaning on the original code (found on the Forum). This code requests an input on row 1 starting at location 0, the cursor blinks to identify the location, the default values are underscores, and when a value is entered and the select button pressed the value is posted to the serial monitor and the value defaults to undersocres waiting for another value, starting at the row 1 column 0 again.
Once i have an SD shield (or similar) I will write the value to a text file and append the value to the file and save.

The variable 'a' in the code is defined as a global int and used to change the number between 0 through 9 in the code posted prior. The value that code saved would be a 5 digit number greater than 255 (256 bytes) allowed. I have posted the modified code below, if you notice any problems that would set me back when i attempt to write to a text file and save to an SD card please let me know.

Looking through the SD options, should I use SPI or I2C; this maybe subjective but any advice one way or the other would be great.

#include <LiquidCrystal.h>

LiquidCrystal lcd(8,9,4,5,6,7);

enum {btnNONE, btnSELECT, btnLEFT, btnUP, btnDOWN, btnRIGHT, NUM_KEYS };
const byte ButtonsPin= A0;

int read_LCD_buttons()
{
  int returnValue;
  // read ADC value of pressed button
  int adc_key_in =  analogRead (ButtonsPin);
  int adc_key_in1=  analogRead (ButtonsPin);
  // read again and check for stable ADC reading (software debouncing for analog input)
  if (abs(adc_key_in1-adc_key_in)>1) return btnNONE; // if ADC reading is not stable, return btnNONE
  if (adc_key_in <50) returnValue= btnRIGHT;
  else if (adc_key_in <195) returnValue= btnUP;
  else if (adc_key_in <410) returnValue= btnDOWN;
  else if (adc_key_in <650) returnValue= btnLEFT;
  else if (adc_key_in <999) returnValue= btnSELECT;
  else returnValue=btnNONE;
  // simple "blocking" code: "Busy waiting" until button is released by user
  while(adc_key_in<999) adc_key_in= analogRead(ButtonsPin);
  return returnValue;
}


void setup()
{
  Serial.begin(9600);
  lcd.begin(16,2);
  lcd.clear();
  lcd.print ("Input name:");
  lcd.blink();
}


char value[]= "_____";
int cursorPos;
boolean lcdNeedsUpdate=true;

void loop()
{
  char key=read_LCD_buttons();
  if (key!= btnNONE) lcdNeedsUpdate=true;
  switch (key)
  {
    case btnRIGHT:
      if (cursorPos<4) cursorPos++;
      break;
    case btnLEFT:  
      if (cursorPos>0) cursorPos--;
      break;
    case btnUP:
      if (value[cursorPos]<'z') value[cursorPos]++;
      break;
    case btnDOWN:
      if (value[cursorPos]>'0') value[cursorPos]--;
      break;
    case btnSELECT:
      Serial.print("Saved value: ");
      Serial.println(value);
      strcpy(value,"_____");
      cursorPos=0;
      break;
  }
  if (lcdNeedsUpdate)
  {
    lcd.setCursor(0,1);
    lcd.print(value);
    lcd.setCursor(cursorPos,1);
    lcdNeedsUpdate=false;
  }
}

Looking through the SD options, should I use SPI or I2C; this maybe subjective but any advice one way or the other would be great.

I've never seen an SD reader/writer that used I2C, so I think that really defines which one to use.

PaulS:
I've never seen an SD reader/writer that used I2C, so I think that really defines which one to use.

Thanks that makes the decision simple.

I am adding a reference to an older post regarding a similar
request.

http://forum.arduino.cc/index.php?topic=169235.0