Skocz do zawartości

[GM 8.1] Telemetria na plikach ini


Phoenix

Rekomendowane odpowiedzi

Witajcie. Mam pytanie odnośnie plików ini, ponieważ tworzę telemetrię do samochodów w mojej gierce. Wykorzystuję pliki .ini do konfiguracji ustawień itp. Problem pojawił się, gdy zechciałem stworzyć telemetrię. W teorii wszystko jest bardzo proste. Zczytuję wartości zmiennych co jedną klatkę (30 FPS) i zapisuję do pliku ini. Największe utrudnienie pojawia się w samym zapisie. Nie wiem jak obejść to, że jeżelie nie użyję wewnętrznego licznika w tym pliku ini, to zawsze będzie nadpisywać mi wartość np. speed. Z kolei, gdy zacznę numerować każdy wpis do telemetrii to powstanie mi np. 341 pomiarów, ale każdy zawiera tę samą formułkę np.:

Pomiar 1

25,6

 

Pomiar 2

27,8

 

itp.

 

Potem chcę to wkleić do Excela i zrobić wykres, ale muszę się bawić w usuwanie tych: "Pomiar 1" i niwelować odstępy między wierszami, bo wykres nie wyjdzie. To trochę bezsensu, gdy pomiarów będzie np. 1200

 

Pytanie:

Jak mogę zapisywać kolejne pomiaru bez potrzeby ich numerowania w pliku ini (żeby "intuicyjnie" zapisywał się pomiar jeden pod drugim)? A może można zastąpić w tym konkretnym przypadku pliki ini czymś innym?

Odnośnik do komentarza
Udostępnij na innych stronach

Nie można, a nawet trzeba w tym wypadku zastąpić pliki ini zwykłymi plikami tekstowymi. <_< Excel w bardzo przyjemny sposób potrafi coś takiego odczytywać. Poszukaj opcji importu danych z pliku. Wtedy wystarczy że oddzielisz swoje dane jakimś znakiem (; jest ok) a kolejne wiersze innym (| albo cokolwiek innego)

 

Poza tym staraj się nie zapisywać danych co step, a zapisuj je w jakiejś strukturze.

 

@UP: pamiętałem o CVS ale myślałem że to jeszcze inny sposób. :P

Odnośnik do komentarza
Udostępnij na innych stronach

No bo z ini kombinowałeś. Eh... Masz najprostszą z możliwości użycia plików tekstowych. Na zmianę dopisywać na końcu pliku twój pomiar i znak rozdzielający. Nie da się tu zrobić błędu.

 

Otwierasz plik z atrybutem append czyli dopisywania.

while(masz dane)

{

file_text_write_string(fileid, string(pomiar))

file_text_write_string(fileid,",")

file_text_write_string(fileid, string(wartość))

file_text_write_string(fileid,",")

file_text_write_string(fileid, string(inna kolumna))

file_text_writeln(fileid)

}

Odnośnik do komentarza
Udostępnij na innych stronach

Mam prawo tego nie wiedzieć. Programuję chałupniczymi metodami dla siebie od czasu do czasu i amatorsko, a nie, żeby z tego robić faktyczne gry dla innych. Tej metody zwyczajnie nie miałem, nie wiem po co ten pretensjonalny ton. Mimo wszystko dzięki. Sprawdzę :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

Może w programistycznych środowiskach pliki ini to metoda najbardziej low i niefunkcjonalna. Mnie jednak pozwala zrobić bazę/silnik i później sprawnie wczytywać spoza gry. Może są lepsze metody, może szybsze, ale z myślę, że ini są w tej dziedzinie najprostsze, a nawet jeśli nie, to i tak nie będę tego zmieniać.

Odnośnik do komentarza
Udostępnij na innych stronach

Jedyne plusy ini nad plikami tekstowymi są takie że nieumiejetnie stosowane funkcje mogą wyczyścić zawartość pliku i że z pliku ini wyciągasz tylko te dane które Cię interesują. W plikach tekstowych musisz zaplanować sobie strukturę i o niej pamiętać bo jak się pomylisz to wszystko zniszczysz.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...