2013-10-31 110 views
1

我有-32,-20,-30,-35,-40,-45存儲到SD卡Test.cal文件。我想把它們放入char中,然後把它們放到數組中沒有逗號的數組中。在結束時,結果會是這樣,陣列[0] = - 32,陣列[1] = - 20 .....獲取價值SD卡的文件

請幫助!!!!!

/* 
    SD card read/write 

This example shows how to read and write data to and from an SD card file 
The circuit: 
* SD card attached to SPI bus as follows: 
** MOSI - pin 11 
** MISO - pin 12 
** CLK - pin 13 
** CS - pin 4 

created Nov 2010 
by David A. Mellis 
modified 9 Apr 2012 
by Tom Igoe 

This example code is in the public domain. 

*/ 

#include <SD.h> 
     char inData[20]; 
     int index=0; 
     char inchar ; 
File myFile; 
String test; 

void setup() 
{ 
// Open serial communications and wait for port to open: 
    Serial.begin(9600); 
    while (!Serial) { 
    ; // wait for serial port to connect. Needed for Leonardo only 
    } 


    Serial.print("Initializing SD card..."); 
    // On the Ethernet Shield, CS is pin 4. It's set as an output by default. 
    // Note that even if it's not used as the CS pin, the hardware SS pin 
    // (10 on most Arduino boards, 53 on the Mega) must be left as an output 
    // or the SD library functions will not work. 
    pinMode(53, OUTPUT); 

    if (!SD.begin(4)) { 
    Serial.println("initialization failed!"); 
    return; 
    } 
    Serial.println("initialization done."); 


    // re-open the file for reading: 
    myFile = SD.open("Test.cal"); 
    if (myFile) { 
    Serial.println("test.txt:"); 

    // read from the file until there's nothing else in it: 
    while (myFile.available()) { 


     inchar= myFile.read(); 
     Serial.print(inchar); 
     inData[index]=inchar; 
     index++; 





    } 
    // close the file: 
    myFile.close(); 
    } else { 
    // if the file didn't open, print an error: 
    Serial.println("error opening test.txt"); 
    } 
} 

void loop() 
{ 
    // nothing happens after setup 
} 
+0

又有什麼問題?我看到了你想要的東西,一堆代碼和一聲求救的描述 - 但沒有描述你遇到的實際麻煩。請記住,在這裏,我們很樂意幫助您解決實際問題,但有一個非常強烈的共識,我們不會爲您編寫代碼。 – fvu

+0

問題是下面的代碼,我可以從inchar讀取測試。並嘗試將其存儲到char數組中,但未能這樣做。你可以給我一些建議 inchar = myFile.read(); Serial.print(inchar); inData [index] = inchar; index ++;的 – Yang

+0

可能重複[如何從SD卡號碼?](http://stackoverflow.com/questions/19712528/how-to-get-numbers-from-sd-card) –

回答

0

這將是更好地使用數組String數組的數組:

char* arrayName[] = {"data1", "data2"} 
    When you use the myFile.read() function 
    you pass the value to inChar Then check if(inChar != '-') 
(int Var)TempNum = inChar - '0'  //get the number 
(String Var)TempA = String(TempNum) // cast 
(String Var)TempB += TempA // concat 
    else if (inChar == ',') 
    arrayName[index] = TempB 
    or use this if the compiler will Scream Error 
    TempB.toCharArray(arrayName[index],buffer) [in your case make it 3] 
    index++ TempB="" 
+0

請重新格式化您的代碼是可讀的。你可以使用空格而不是'具有更好的格式。 –

+0

我認爲現在好多了,這應該會返回沒有' - '部分的數字 –