title: Delphi for loops and StringList Errors
body: <p>Ok guys, I've been trying to find out every possible mistake i'm making but I give up... I need help! What I'm writing is an app to manage rentals for my job and when the date is past, my app removes the name from 2 text files. I wrote 3 little functions(procedures) to make this work. Here:</p>
  
  <p>This one loads from dates.dat file and remove the line containing the name of the employee.</p>
  
  <pre><code>procedure remDate(emp: String);/// Removes employee from date file
  var
    pos1, i: integer;
    dateList: TStringList;
  begin
    dateList:=TStringList.Create;
    dateList.LoadFromFile('Data\dates.dat');
    for i:=0 to dateList.Count-1 do begin
      pos1:=AnsiPos(emp, dateList[i]);
      if pos1&lt;&gt;0 then begin
        dateList.Delete(i);
        dateList.SaveToFile('Data\dates.dat');
      end;
    end;
    dateList.Free;
  end; //eo remDate
  </code></pre>
  
  <p>This one removes the line containing the employee name from the perm.dat file.</p>
  
  <pre><code>procedure remPerm(emp: String);/// Removes employee from perm file
  var
    pos1, i: integer;
    permList: TStringList;
  begin
    permList:=TStringList.Create;
    permList.LoadFromFile('Data\perm.dat');
    for i:=0 to permList.Count-1 do begin
      pos1:=AnsiPos(emp, permList[i]);
      if pos1&lt;&gt;0 then begin
        permList.Delete(i);
        permList.SaveToFile('Data\perm.dat');
      end;
    end;
    permList.Free;
  end; //eo remPerm
  </code></pre>
  
  <p>This one sticks those together. The isDue is a simple function that compares 2 dates and returns a TRUE if date is today or is past. </p>
  
  <pre><code>procedure updatePerms;
  var
    empList: TStringList;
    i: integer;
  begin
    empList:=TStringList.Create;
    empList.LoadFromFile('Data\employes.dat');
    for i:=0 to empList.Count-1 do begin
      if isDue(empList[i]) then begin
        remDate(empList[i]);
        remPerm(empList[i]);  (*) Here is where the error points.
      end;
    end;
    empList.Free;
  end;
  </code></pre>
  
  <p>The error I get is when it gets to remPerm in the updatePerms procedure.(*)
  I get a EStringList Error, out of bound (#). Figured out with many tries that it only happens when an employee's due date is today. Please comment if you need more info!
  Thanks in advance, any help is really appreciated!</p>