#include <SD.h>
void setup()
{
Serial.begin( 115200 );
SD.begin( 10 );
char line[32];
size_t line_length = 0;
// Write lines to file
File file = SD.open( "data.txt", FILE_WRITE );
if ( file )
{
randomSeed( analogRead( A0 ) );
for ( uint8_t i = 1; i <= 3; ++i )
{
line_length = snprintf( line, sizeof( line ), "%5hi %5hi %5hi.%hhu",
(int16_t)random( -1500, 1500 ),
(int16_t)random( -1500, 1500 ),
(int16_t)random( -1500, 1500 ),
(uint8_t)random( 10 )
);
Serial.print( "Writing line " );
Serial.print( i );
Serial.print( " : \"" );
Serial.print( line );
Serial.println( "\"" );
file.println( line );
}
file.close();
line_length += 2; // count characters "\r\n" added by println
}
Serial.println();
// Read all lines from file
file = SD.open( "data.txt" );
if ( file )
{
while ( file.available() >= line_length )
{
static uint8_t line_id = 0;
file.seek( line_id * line_length ); // go to line
file.read( line, line_length - 2 ); // read line without "\r\n"
line[ line_length - 2 ] = '\0'; // make sure to add null character to make a valid C-string
Serial.print( "Reading line " );
Serial.print( ++line_id );
Serial.print( " : \"" );
Serial.print( line );
Serial.println( "\"" );
}
file.close();
}
}
void loop()
{
}