0

我不擅长编码。我在 SD 卡中有一个名为 Test.cal 的文件,其中包含 6 个数字。20,21,22,23,24,25 但我不知道这六个数字如何得到。有人能帮我吗 ?以下是我自己对编码的想法。

#include <SD.h>

float meterTemp[6];
String theLines[15];
File myFile;

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) {

//我想把文件编号放入数组,meterTemp[6],不包括逗号,所以当我得到meterTemp[0]=-32时,以此类推。

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

    }
    // 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
}
4

2 回答 2

1
#include <SD.h>

float meterTemp[6];
String theLines;
File myFile;
String filename="Test.cal";
int line=0;

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()) {
        Serial.write(myFile.read());
           theLines=readFile(filename,line);
     Serial.println(theLines);
    }
    // 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
}

String readFile(String filename, int line)
{
char s[20];
char FileName[sizeof(filename)];
filename.toCharArray(FileName, sizeof(FileName));

File myFile = SD.open(FileName,FILE_READ);
if(myFile)
{
String recived = "";
int cur = 0;
char ch;
while (myFile.available())
{
ch = myFile.read();
if(ch == ',')
{
cur++;
if(cur == line)
{
myFile.close();
return String(recived);
}
}
else
{
recived += ch;
}
}
}
return "";
}
于 2013-11-01T16:35:10.090 回答
0
String readFile(String filename, int line)
{
char FileName[sizeof(filename)];
filename.toCharArray(FileName, sizeof(FileName));
File myFile = SD.open(FileName,FILE_READ);
if(myFile)
{
String recived = "";
int cur = 0;
char ch;
while (myFile.available())
{
ch = myFile.read();
if(ch == '\n')
{
cur++;
if(cur == line)
{
myFile.close();
return String(recived);
}
}
else
{
recived += ch;
}
}
}
return "";
}

它来自 Arduino Visual 代码生成器。用您的字符替换“\n”

于 2013-10-31T21:01:58.047 回答