Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> DataFile - sposob przechowywania danych, 4fun
q.michal
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 1
Dołączył: 24.12.2013

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


Czesc,


Tym razem prosta klaska do przechowywania danych w plikach w nowym formacie.
Plik ma 2 naglowki oraz dane. Pierwszy naglowek w calosci jest sygnatura na podstawie ktorej sprawdzamy czy plik jest poprawny. Nastepnie naglowek zawiera informacje jak:
* suma kontrolna naglowka
* Identyfikator naglowka
* Flagi (obecnie nie uzywane, chce za ich pomoca rozrozniac typ szyfrowania / kompresji)
* System na jakim plik zostal utworzony, chociazby aby wiedziec ze trzeba zamienic \ na /
* Wersja pliku (nowsza wersja bedzie wymagala klasy w nowszej wersji)
* Rozmiar danych
* Suma kontrolna danych

Dane po zapisie do pliku sa od razu walidowane.
Kod: http://wklej.org/hash/8de4c3a48f3/


Jak zwykle krytyka mile widziana (IMG:style_emoticons/default/smile.gif)
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Mozesz mi napisac co robi ten kod:

  1. if(!$bytes) {
  2. $bytes = strlen($bytes);
  3. }

?

W klasie uzywasz stalej
DATAFILE_VERSION
Ale chyba slepne bo nie widze bys gdziekolwiek ja ustawial

No i najwazniejsze: po co? Ja rozumiem, ze w ramach nauki, ale co to robi? W jakim nowym formacie te dane sa przechowywane? Po co przechowywac te dane w jakims nowym formacie?

Cytat
System na jakim plik zostal utworzony, chociazby aby wiedziec ze trzeba zamienic \ na /

Tak klasa przechowuje jakies dane. Guzik ja powinno obchodzic na jakim systemie te dane zostaly zapisane. Ta klasa nie przetwarza sciezek plikow.
Go to the top of the page
+Quote Post
q.michal
post
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 1
Dołączył: 24.12.2013

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


Cytat(nospor @ 17.05.2017, 10:11:42 ) *
Mozesz mi napisac co robi ten kod:

  1. if(!$bytes) {
  2. $bytes = strlen($bytes);
  3. }

?


Nic, nadaje sie do wywalenia, moje przeoczenie poprostu. Dzieki za zwrocenie uwagi.

Cytat(nospor @ 17.05.2017, 10:11:42 ) *
W klasie uzywasz stalej
DATAFILE_VERSION
Ale chyba slepne bo nie widze bys gdziekolwiek ja ustawial


Zwykla stala ktora zapomnalem przekleic, bo zdefiniowana jest w osobnym pliku: define('DATAFILE_VERSION' 1.0);

Cytat(nospor @ 17.05.2017, 10:11:42 ) *
No i najwazniejsze: po co? Ja rozumiem, ze w ramach nauki, ale co to robi? W jakim nowym formacie te dane sa przechowywane? Po co przechowywac te dane w jakims nowym formacie?


Dokladnie tak - w celach edukacyjnych. Dane mozna w niej przechowywac, chociazby po to, aby miec od razu ich sume kontrolna zapisana w tym samym, pojedynczym pliku, czy dodatkowe informacje jak chociazby system na jakim zostal utworzony. Poza tym docelowo bedziesz mogl wlaczyc/wylaczyc kompresje i zaoszczedzic troche miejsca na dysku/transferu w sieci.


Cytat(nospor @ 17.05.2017, 10:11:42 ) *
Tak klasa przechowuje jakies dane. Guzik ja powinno obchodzic na jakim systemie te dane zostaly zapisane. Ta klasa nie przetwarza sciezek plikow.


Ta klasa nie - ale zapisuje taka informacje do pliku wraz z danymi i mozesz z niej zawsze skorzystac. Masz taka mozliwosc. To tylko 1 bajt wiecej, a nie musisz pozniej zachodzic w glowe jaki bedzie znak konca linii, separator w sciezce, itp.

Ten post edytował q.michal 17.05.2017, 10:03:58
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: 4.10.2025 - 12:18