Skocz do zawartości

Zapis na SD pliku XML


BmpPmB

Pomocna odpowiedź

Witam wszystkich!

Mam problem dotyczący zapisu danych na karcie SD. Próbuję utworzyć plik w formacie .xml. Ogólnie zapis plików tekstowych działa, pliki są tworzone na karcie, ale nie wiem w jaki sposób przerobić to na format .xml. Chciałbym wpisywać dane między znaczniki w ten sposób:

<?xml version="1.0" encoding="ISO-8859-2" standalone="no" ?>
<pomiary>
     <pomiar Data="2017-6-15" Godzina="12:26:21" Temp="24.00" Hum="62.00" />
     <pomiar Data="2017-6-15" Godzina="12:27:21" Temp="24.00" Hum="64.00" />
     <pomiar Data="2017-6-15" Godzina="12:28:21" Temp="25.00" Hum="68.00" />
     <pomiar Data="2017-6-15" Godzina="12:29:21" Temp="24.00" Hum="61.00" />
</pomiary> 

I tutaj pojawia się problem, jak dopisywać dane w środku pliku? Używam standardowej biblioteki do kart SD na Arduino. Próbowałem kombinować tak, żeby w pewnym momencie wpisać znaczniki zamykające w pętli ale to nie zdaje egzaminu:

 String dataString2;

 dataString2 += String("<?xml version=\"1.0\" encoding=\"ISO-8859-2\" standalone=\"no\" ?>\r\n");

 dataString2 += String("<pomiary>\r\n");

 dataString2 += String("Temp=\"");
 dataString2 += String(t);
 dataString2 += String("\" ");

 dataString2 += String("Hum=\"");
 dataString2 += String(h);
 dataString2 += String("\" ");

 dataString2 += String("/>\r\n");

 dataString2 += String("</pomiary>  \r\n");

 File dataFile2 = SD.open("data.xml", FILE_WRITE);

 if (dataFile2) {
   dataFile2.println(dataString2);
   dataFile2.close();
   Serial.println("ok");  
 }

Jednak wtedy zawsze dodawany jest nagłówek przy zapisie, a tak być nie może. Proszę o pomoc, na pewno ktoś zajmował się kiedyś takim kształtowaniem pliku .xml zawierającego dane pomiarowe. Z góry dziękuję za pomoc!

Link do komentarza
Share on other sites

BmpPmB, najprościej problem z nagłówkiem można obejść przez dodawanie go tylko, gdy plik jest pusty (lub dopiero tworzony). Wiadomo, że jeśli w pliku są już jakieś dane, to nie ma potrzeby, aby dodawać nagłówek, wystarczy dopisać kolejną linię danych.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.