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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.