Hardware speedcam informer

So after many attempts I was able to conect my GPS using the solution from here - http://arduino.cc/forum/index.php/topic,8163.0.html
I can get NIMEA now
Next stage is to read coordinates from file and work with them.
I already tried many solutions but I am a beginner and I can't modify it for my purpose.
Would you help me please? What is wron in the following code? I need to read data from the file looking like IDX,X,Y,TYPE,SPEED,DirType,Direction
218894,37.8580207,55.8196348,5,60,1,70
(all data is separated by comma)
And my goal is to have variables I can deal with (devide, multiply) - A=218894, X=37.8580207, Y=55.8196348

The code below can do it but only if I put the string into the code - char * input = "$ÇÐÇÇÁ,175341.458,3355.7870,Ó,01852.4251,Å,1,03,5.5,-32.8,Í,32.8,Í,,0000*57";
If I use char * input = fh.read(); - it doesn't work

01 //IDX,X,Y,TYPE,SPEED,DirType,Direction //
02 //229981,37.3056626,55.6643281,1,60,1,29 //
03 #include <SD.h>
04
05
06
07 void setup() {
08 Serial.begin(9600);
09 pinMode(10,OUTPUT);
10 digitalWrite(10,HIGH);
11
12 //???????? ?? ??????
13 Serial.print("Starting SD...");
14 if(!SD.begin(8)) Serial.println("failed");
15 else Serial.println("ok");
16 File fh = SD.open("test.txt",FILE_READ);
17 if(!fh)
18 {
19 Serial.println("SD open fail");
20 return;
21 }
22 //char * input = fh.read();
23 char * input = "$ÇÐÇÇÁ,175341.458,3355.7870,Ó,01852.4251,Å,1,03,5.5,-32.8,Í,32.8,Í,,0000*57";
24 char * garbage = strtok(input, ",");
25 char * firstNumber = strtok(NULL, ",");
26 char * secondNumber = strtok(NULL, ",");
27 double firstDouble;
28 sscanf(firstNumber, "%lf", &firstDouble);
29 printf("%f\n", firstDouble);
30 Serial.print(" C = ");
31 Serial.println(firstNumber);
32 fh.close();
33 }
34 void loop() {
35 }