converting String to float

Well, first you want to have the data as a "char *" not a "String".

Then, you can use the "atoi()" and "atof()" functions to extract the data you want.

char *data = "14-11-2012|15:19:12:|29.30";

int h = atoi(data+11);
int m = atoi(data+15);
float time = h + (m/100.0);
float temp = atof(data+21);