Pour optimiser ton code, et dans le cas où ta table ne sera pas modifiée en taille dans la foulée, tu peux ouvrir ton fichier avec les ";", parcourir le fichier et relever le nombre de ";" dans un compteur, une fois ce nombre connu, tu établis une nouvelle table pile poil à la bonne taille.
Pour le traitement en question, je pense que concernant l'importation, elle se termine lorsque tu arrives à "EOF". par la suite, si tu as à gérer la totalité de ta table, tu pourras te contenter de mettre un test en amont du type if ta_table.ton_champ <> "" then