Forum: Compiler & IDEs Problem: char* und long integer in eine Textdatei aud SD-Karte schreiben


von MartinK (Gast)


Lesenswert?

Hallo,

ich habe ein char*  "NAME1" und eine Globale Variable long integer 
"code" und möchte diese in eine Textdatei auf ein SD-Karte schreiben. 
Das Problem ist, dass er nur Hyroglyphen schreibt... Hat jemand eine 
Idee?
Ich benutze die SDFat.h


void KAUFSD(char* NAME1) {

   SdFile daten("time.csv", O_RDWR);
   if (!daten.isOpen()) {
   SdFile wrfile("time.csv", O_WRITE | O_CREAT | O_TRUNC);
      if (!wrfile.isOpen()) {
        Serial.write("Fehler beim Erstellen der Datei: ");
        Serial.write("time.csv");
        Serial.println();
      }
      else {
        Serial.write("Neue Datei erstellt: ");
        Serial.write("time.csv");
        Serial.println();


      }
    wrfile.close();
   }
   else {
        Serial.write("Datei existiert: ");
        Serial.write("time.csv");
        Serial.println();
         }

    Serial.write("Name zum schreiben ");
    Serial.print(NAME1);
    Serial.println();
    Serial.write("code schreiben: ");
    Serial.print(code);
    Serial.println();

    daten.write (code);
    daten.write (";");
    daten.write (NAME1);
    daten.write ("\r\n");

   int c;
    daten.rewind();
    Serial.write("Datei auslesen: ");
    Serial.println();
    while ((c = daten.read()) >= 0) Serial.write(c);

  daten.close();


Im Seriellen Monitor wird es richtig angezeigt:

Datei existiert: time.csv
Name zum schreiben Herr Mustermann // Ist im char* NAME
code schreiben: 2485790                    // ist die long integer 
variable code
Datei auslesen:
;Z


In der Datei TIME.CSV steht:
;Z

von Falk B. (falk)


Lesenswert?

@MartinK (Gast)

>Das Problem ist, dass er nur Hyroglyphen schreibt... Hat jemand eine
>Idee?

Du musst die Daten genauso mit PRINT auf die SD-Karte schreiben wie auf 
die serielle Schnittstelle. Denn du willst ja ASCII-Text in deiner Datei 
haben, keine Binärdaten.

von MartinK (Gast)


Lesenswert?

Hallo

Danke für die Antwort.

[quote]daten.print(code);[/quote]

Mit daten.print(code);   konnte ich schon mal die Long Integer in die 
Datei schreiben.

Mit dem Namen also daten.print(NAME1);  hat das leider nicht geklappt. 
Da wird kein Zeichen ausgegeben.

von Falk B. (falk)


Lesenswert?

Hmm, das kann ich kaum glauben, denn die member functions sollte SDFat 
von Print.h geerbt haben.

https://mosquino.googlecode.com/hg/libraries/sdfatlib-mosquino/html/class_print.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.