Diferencia entre revisiones de «SD.exists()»

De ArduWiki
Saltar a: navegación, buscar
(Y esta página si me dejó crearla, que rayos?)
 
(Ejemplo)
 
(No se muestran 8 ediciones intermedias de 2 usuarios)
Línea 11: Línea 11:
  
 
== Retorna ==
 
== Retorna ==
'''true''' si el elemento existe en dicha ubicación, '''false''' en caso contrario.
+
'''true''' si el elemento existe en dicha ubicación, '''false''' en caso contrario ([[bool]]).
  
 
== Advertencias ==
 
== Advertencias ==
Línea 19: Línea 19:
 
Similar al ejemplo 2 de [[SD.open()]], solo que utilizando esta función.
 
Similar al ejemplo 2 de [[SD.open()]], solo que utilizando esta función.
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 +
#include <SPI.h>
 +
#include <SD.h>
 +
 
File archivo;
 
File archivo;
  
 
void setup() {
 
void setup() {
  // Inicializamos la tarjeta por supuesto
+
  if (!SD.begin(chipSelect)) {
 
+
      Serial.println("SD fallo, esta puesta ?");
  char nombre[13];
+
      while (1);
  unsigned int contador = 0;
+
  }
 
+
  Serial.println("SD lista.");
  sprintf(nombre, "DATA%04d.CSV", contador);
+
  char nombre[13];
 
+
  unsigned int contador = 0;
  while (SD.exists(nombre)) {
+
  sprintf(nombre, "DATA%04d.CSV", contador);
 
+
  while (SD.exists(nombre)) {
    if (++contador > 9999) { // Si ya se agotaron los cuatro dígitos, no queda de otra que sobrescribir desde la 0000. Lo malo es que esto siempre lo haría si llegara a suceder.
+
      if (++contador > 9999) {   //Si ya se agotaron los cuatro dígitos, no queda de otra que sobrescribir desde la 0000.        
      contador = 0;
+
        contador = 0;            //Lo malo es que esto siempre lo haría si llegara a suceder.
       sprintf(nombre, "DATA%04d.CSV", contador);  
+
        sprintf(nombre, "DATA%04d.CSV", contador);
      break;
+
        break;
    }
+
      }
 +
       sprintf(nombre, "DATA%04d.CSV", contador);
 +
  }
 +
  archivo = SD.open(nombre, FILE_WRITE | O_TRUNC);
 +
}
  
    sprintf(nombre, "DATA%04d.CSV", contador);
+
void loop() {
 
+
  //A este punto ya es cuestión de solamente usar la instancia.
  }
 
  archivo = SD.open(nombre, FILE_WRITE | O_TRUNC);
 
  // A este punto ya es cuestión de solamente usar la instancia.
 
 
}
 
}
 
void loop() {}
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== Vea también ==
 
== Vea también ==
* [[SD]]
+
<categorytree mode=all>Libreria SD</categorytree>
* [[SD.open()]]
 
  
 
== Referencias ==
 
== Referencias ==
 +
 +
 +
[[Category:Libreria SD]]

Revisión actual del 15:27 3 jul 2019

Descripción

Verifica si la ruta hacia cierto elemento (archivo o carpeta) realmente existe.

Sintaxis

SD.exists(ruta);

Parametros

ruta
ruta hacia el archivo o carpeta que se pretende verificar, o sólo el nombre para ubicarlo en la "raíz" (string o String).

Retorna

true si el elemento existe en dicha ubicación, false en caso contrario (bool).

Advertencias

Nada.

Ejemplo

Similar al ejemplo 2 de SD.open(), solo que utilizando esta función.

#include <SPI.h>
#include <SD.h>

File archivo;

void setup() {
   if (!SD.begin(chipSelect)) {
      Serial.println("SD fallo, esta puesta ?");
      while (1);
   }
   Serial.println("SD lista.");
   char nombre[13];
   unsigned int contador = 0;
   sprintf(nombre, "DATA%04d.CSV", contador);
   while (SD.exists(nombre)) {
      if (++contador > 9999) {   //Si ya se agotaron los cuatro dígitos, no queda de otra que sobrescribir desde la 0000.         
         contador = 0;            //Lo malo es que esto siempre lo haría si llegara a suceder.
         sprintf(nombre, "DATA%04d.CSV", contador); 
         break;
      }
      sprintf(nombre, "DATA%04d.CSV", contador);
   }
   archivo = SD.open(nombre, FILE_WRITE | O_TRUNC);
}

void loop() {
   //A este punto ya es cuestión de solamente usar la instancia.
}

Vea también


Referencias