/*
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>
File myFile;
char buf[20]; //tergantung lebar datanya
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
pinMode(10,OUTPUT);
pinMode(4,OUTPUT);
digitalWrite(10,HIGH);
digitalWrite(4,LOW);
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(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
// re-open the file for reading:
myFile = SD.open("lolo.txt");
if (myFile) {
Serial.println("lolo.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
myFile.read(buf,20); //tergantung lebar datanya
if(strncmp(buf,"4546",4)==0)
{
for (int i = 0; i < 20; i = i + 1) {
Serial.print(buf[i]);
}
break;
}
}
// 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
}
but if i change "4546" to 4545 for finding 4545345678901 TISSUE cant display to serial monitor
but if i change to the others, display can output the number and the item like PLC,HMI and the others
This is not an SD card-related problem at all..
If you use a 20 char length buffer, you should set all database entry to 20 char too; you must correct the length of the items.
George_Cs:
This is not an SD card-related problem at all..
If you use a 20 char length buffer, you should set all database entry to 20 char too; you must correct the length of the items.
i try to change size buffer from 20 to 25 but still the output can't get the TISSUE item
riandanualdy:
i try to change size buffer from 20 to 25 but still the output can't get the TISSUE item
You changed your code, but didn't post it. Why not?
Use Tools + Auto Format to properly indent your code before posting it again.
Printing what is actually read from the file would be a good idea. Understanding the importance of the NULL terminator in char arrays meant to be strings would be, too.
You assume that read() is adding the NULL terminator. It is NOT. You then pass the char array to a function that expects a string (a NULL terminated array of chars). BAD idea.