Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odczyt metadata - plik *.bif
hettmix
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 10.03.2012

Ostrzeżenie: (0%)
-----


Witam.

Potrzebuję dostać się do danych zapisanych w pliku z rozszerzeniem bif. Jest to plik graficzny zapisywany przez kamerę urządzenia rejestrującego typu fotoradar niemieckiego producenta Robot Visual Systems GmBH z utrwalonym wykroczeniem, a zawierający m.in. takie dane jak data i czas zdarzenia, prędkość, lokalizacja itd. Edytując ten plik np. w notatniku na jego końcu znajdują się pewne znaczniki wraz z przypisanymi wartościami m.in.:

CAM_SHU1=0004
CAM_GAI1=0220
CAM_OFF1=0000
CAM_SYSN=ROBOT Digital 5.0
DIS_LOOP=02500
FIL_NUMB=0000090
FRA_INDE=A
FRA_NUMB=120
INC_DATE=190213
INC_TIME=131555
INC_INDE=0
INC_LANE=1
INC_SPEE=061
INC_LIMI=050
INC_MLIM=061
INC_CVEH=0
IMG_NUMB=00000239

Jak mogę odczytać z tego pliku wartości przypisane do poszczególnych znaczników ?.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kofel
post
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 22
Dołączył: 14.12.2007
Skąd: Wyszków

Ostrzeżenie: (0%)
-----


Ogólnie, to te znaczniki są zapisane na pewno po pewnym ciągu bajtów (albo i pojedyńczego szczególnego bajtu). Dlatego wydaje mi się, że rozsądniejsze byłoby wyszukanie tego właśnie "markera". Wrzuć proszę przykładowy plik. Postaram się to ogarnąć.
Dopiero później można byłoby się zająć sparsowaniem tych zmiennych. Zrobiłbym to za pomocą regexpów:
Kod
/([^=]+)=(.*)/


Przykład:
  1. <?php
  2.  
  3. $string = 'CAM_SHU1=0004
  4. CAM_GAI1=0220
  5. CAM_OFF1=0000
  6. CAM_SYSN=ROBOT Digital 5.0
  7. DIS_LOOP=02500
  8. FIL_NUMB=0000090
  9. FRA_INDE=A
  10. FRA_NUMB=120
  11. INC_DATE=190213
  12. INC_TIME=131555
  13. INC_INDE=0
  14. INC_LANE=1
  15. INC_SPEE=061
  16. INC_LIMI=050
  17. INC_MLIM=061
  18. INC_CVEH=0
  19. IMG_NUMB=00000239';
  20.  
  21. $matches = array();
  22. $znaczniki = array();
  23.  
  24. preg_match_all('/([^=]+)=(.*)/', $string, $matches, PREG_SET_ORDER);
  25.  
  26. foreach ($matches as $match)
  27. {
  28. $znaczniki[trim($match[1])] = trim($match[2]);
  29. }
  30.  
  31. var_dump($znaczniki);


Ten post edytował Kofel 23.09.2013, 11:10:20
Go to the top of the page
+Quote Post
hettmix
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 10.03.2012

Ostrzeżenie: (0%)
-----


Cytat(Kofel @ 23.09.2013, 12:08:53 ) *
Ogólnie, to te znaczniki są zapisane na pewno po pewnym ciągu bajtów (albo i pojedyńczego szczególnego bajtu). Dlatego wydaje mi się, że rozsądniejsze byłoby wyszukanie tego właśnie "markera". Wrzuć proszę przykładowy plik. Postaram się to ogarnąć.
Dopiero później można byłoby się zająć sparsowaniem tych zmiennych. Zrobiłbym to za pomocą regexpów:
Kod
/([^=]+)=(.*)/


Przykład:
  1. <?php
  2.  
  3. $string = 'CAM_SHU1=0004
  4. CAM_GAI1=0220
  5. CAM_OFF1=0000
  6. CAM_SYSN=ROBOT Digital 5.0
  7. DIS_LOOP=02500
  8. FIL_NUMB=0000090
  9. FRA_INDE=A
  10. FRA_NUMB=120
  11. INC_DATE=190213
  12. INC_TIME=131555
  13. INC_INDE=0
  14. INC_LANE=1
  15. INC_SPEE=061
  16. INC_LIMI=050
  17. INC_MLIM=061
  18. INC_CVEH=0
  19. IMG_NUMB=00000239';
  20.  
  21. $matches = array();
  22. $znaczniki = array();
  23.  
  24. preg_match_all('/([^=]+)=(.*)/', $string, $matches, PREG_SET_ORDER);
  25.  
  26. foreach ($matches as $match)
  27. {
  28. $znaczniki[trim($match[1])] = trim($match[2]);
  29. }
  30.  
  31. var_dump($znaczniki);


Poniżej link do pliku:
Link do pliku *.bif
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 21:40