Code:
// This program reads data from a file on the CF card and stores
// it in the appropriate arrays on the G3.
cstring fname, linetxt;
int i, ofile, fabnum, delim1, delim2;
fname := "/" + filename + ".csv"; // Generate filename.
ofile := OpenFile(fname,0); // Open the file.
// Clear all recipe arrays before importing.
Fill(recipe_PileHeight[0],0,1000);
for(i:=0; i<1000; i++) recipe_Description[i] := "";
Fill(recipe_BuffActive[0],false,1000);
Fill(recipe_CardActive[0],false,1000);
Fill(recipe_BevelActive[0],false,1000);
Fill(recipe_TrimActive[0],false,1000);
Fill(recipe_BufferSpeed[0],0,1000);
Fill(recipe_CardingSpeed[0],0,1000);
Fill(recipe_FBUFF_ExtPos[0],0,1000);
Fill(recipe_RBUFF_ExtPos[0],0,1000);
Fill(recipe_FCARD_ExtPos[0],0,1000);
Fill(recipe_RCARD_ExtPos[0],0,1000);
Fill(recipe_FTRIM_ExtPos[0],0,1000);
Fill(recipe_RTRIM_ExtPos[0],0,1000);
Fill(recipe_BuffDwell[0],0,1000);
Fill(recipe_CardDwell[0],0,1000);
linetxt := ReadFileLine(ofile); // Read first line of file (headers).
linetxt := ReadFileLine(ofile); // Read second line of file (first line of data).
while(linetxt != "") // Loop until all lines are read
{
delim2 := Find(linetxt,',',0);
fabnum :=TextToInt(Mid(linetxt,0,delim2),10); // Get fabric number from first item
delim1 := delim2;
delim2 := Find(linetxt,',',1);
recipe_PileHeight[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 := Find(linetxt,',',2);
recipe_Description[fabnum] :=Mid(linetxt,delim1+1,delim2-delim1-1);
delim1 := delim2;
recipe_BuffActive[fabnum] :=TextToInt(Mid(linetxt,delim1+1,1),10);
recipe_CardActive[fabnum] :=TextToInt(Mid(linetxt,delim1+3,1),10);
recipe_BevelActive[fabnum] :=TextToInt(Mid(linetxt,delim1+5,1),10);
recipe_TrimActive[fabnum] :=TextToInt(Mid(linetxt,delim1+7,1),10);
delim1 := delim1 + 8;
delim2 := Find(linetxt,',',7);
recipe_BufferSpeed[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 := Find(linetxt,',',8);
recipe_CardingSpeed[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 := Find(linetxt,',',9);
recipe_FBUFF_ExtPos[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 :=Find(linetxt,',',10);
recipe_RBUFF_ExtPos[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 :=Find(linetxt,',',11);
recipe_FCARD_ExtPos[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 :=Find(linetxt,',',12);
recipe_RCARD_ExtPos[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 :=Find(linetxt,',',13);
recipe_FTRIM_ExtPos[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 :=Find(linetxt,',',14);
recipe_RTRIM_ExtPos[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
delim2 :=Find(linetxt,',',15);
recipe_BuffDwell[fabnum] :=TextToInt(Mid(linetxt,delim1+1,delim2-delim1-1),10);
delim1 := delim2;
recipe_CardDwell[fabnum] :=TextToInt(Mid(linetxt,delim1+1,Len(linetxt)-delim1-1),10);
linetxt :=ReadFileLine(ofile); // Read nextline of file.
}
CloseFile(ofile); // Close the file.