2013-10-31 21 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

我认为现在好多了,这应该会返回没有' - '部分的数字 –