I am getting multiple messages from a GPS device at different frequencies. After getting strings I have to save this data on the SD card. It works well when we have the same frequencies messages but if the frequencies are not same the saved data gets some blank spaces. I am using the split strings method. [code] CR1A = String1.indexOf(13); //finds location of first String1A = String1.substring(0, CR1A + 2 ); //captures first data String CR1B = String1.indexOf(13, CR1A + 2 ); //finds location of second , String1B = String1.substring(CR1A , CR1B + 2 ); //captures second data String CR1C = String1.indexOf(13, CR1B + 2 ); String1C = String1.substring(CR1B , CR1C + 2 ); CR1D = String1.indexOf(13, CR1C + 2 ); String1D = String1.substring(CR1C , CR1D + 2 ); CR1E = String1.indexOf(13, CR1D + 2 ); String1E = String1.substring(CR1D , CR1E + 2 ); CR1F = String1.indexOf(13, CR1E + 2 ); String1F = String1.substring(CR1E , CR1F + 2 ); strID = (String1A.substring(0, 2)); if (strID == "$G") { File dataFile = SD.open("GPS1.txt", FILE_WRITE); // if the file is available, write to it: strID = (String1A.substring(0, 5)); if (strID == "$GPGG") { dataFile.print(dt); dataFile.print(" "); dataFile.print(tm); dataFile.print(msec); dataFile.print(","); dataFile.print(String1A); String1A = ""; } strID = (String1D.substring(4, 6)); if (strID == "TG" || "DA" || "LL" || "NS" || "RS") { dataFile.print(String1B); String1B = ""; } strID = (String1C.substring(4, 6)); if (strID == "TG" || "DA" || "LL" || "NS" || "RS") { dataFile.print(String1C); String1C = ""; } strID = (String1D.substring(4, 6)); if (strID == "TG" || "DA" || "LL" || "NS" || "RS") { dataFile.print(String1D); String1D = ""; } strID = (String1E.substring(4, 6)); if (strID == "TG" || "DA" || "LL" || "NS" || "RS") { dataFile.print(String1E); String1E = ""; } strID = (String1F.substring(4, 6)); if (strID == "TG" || "DA" || "LL" || "NS" || "RS") { dataFile.print(String1F); String1F = ""; } dataFile.close(); } [/code]