Witam,
Mam problem z "wyłuskaniem" danych z pliku binarnego, wiem od którego miejsca są te dane zapisane, i tu nie ma problemu zesby skoczyc do tego miejsca, dane są zapisane na 4 bajtach, kolejno oddzielone takze 4 bajtowym znacznikiem, ponizej przedstawiam kod który wyłuskuje te dane:

  1. <?php
  2. echo '<FORM enctype="multipart/form-data" method="post">
  3. <INPUT TYPE="hidden" value="1000000">
  4. <INPUT NAME="plikform" TYPE="file" size=40 >
  5. <INPUT TYPE="submit" value="Konwertuj">
  6. </FORM >';
  7.  
  8. $file_tmp = $_FILES['plikform']['tmp_name'];
  9. $fid=fopen($file_tmp,'rb'); 
  10. $chromatogram=array();
  11. $danehex=array();
  12. $danedec=array();
  13. $danechr=array();
  14.  
  15. $status=fseek($fid, 3634, SEEK_SET); 
  16. $chromatogram[1]=fread($fid, 4);
  17.  
  18. $znacznik1=fread($fid,4);  
  19. $znacznik=$znacznik1;
  20. $i=2;
  21.  
  22. while ($znacznik==$znacznik1) 
  23. {
  24. $chromatogram[$i]=fread($fid,4);
  25. $znacznik=fread($fid,4);
  26. $i=$i+1;
  27. }
  28. ?>


Dane prawdpodobnie zapisane są w kodzie uzupełnien do 2, nie wiem czy w php-ie istnieje jakas funckja która liczy wartosci z tego kodu na dziesietne wartości. Moje rozwiazanie jest nastepujace, ze wzgledu na brak pomysłu nie nalezy ona do najlepszych a wiec odczytuje dana 4 bajtową, z bina konwertuje ją na hexa,z hexa na dec, z dec na bin i tu juz mam kod do przekonwertowania na dec. Wiem, ze sposob jest bardzo zły, ale jesli od razu chciałbym z bina na deca to php oczywiscie nie widzi tego jako bin tylko wiadomo są to krzaczki i nie ma możliwosci konwersji :/ prosze o pomoc bo nie mam juz pomysłu jak to obejsc :/ W matlabie poradziłem sobie bez problemów i kod jest prawie taki sam i nie ma problemów z konwersją bo z funkcji fread() te dane juz są widziane jako dziesietne i jest ok ale php mnie pogrążył, prosze o pomoc sad.gif