![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 0 Dołączył: 9.04.2002 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, do którego działu najlepiej pasowałby ten temat (MySQL, PostgreSQL), więc piszę tu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ostatnio pisałem skrypt bazy danych na plikach CSV, czyli takich, w których pierwsza linia zawiera nazwy pól pooddzielane jakimś separatorem, a następne linie zawierają dane (również oddzielone tym samym separatorem). Porzuciłem ten projekt i zacząłem pisać skrypt na nieco innej zasadzie. Otórz założyłem, iż dane w bazie nie będą oddzielane separatorami, lecz będzie podawana długość każdego pola, czyli taki zapis: 004016MarsCzerwona planeta oznacza, że pierwsze pole (4 znaki) ma wartość "Mars", a drugie (16 znaków) "Czerwona planeta". Taki zapis ma jednak wady, ponieważ na początku bazy (pliku z danymi) muszę podawać z ilu cyfr ma się składać każda liczba reprezentująca ilość znaków pola, czyli np. muszę podać 3, aby liczby miały postać: 001, 002, 003 itd., lub wpisać 4 dla licyb w postaci 0001, 0002, 0003 itd. Mój problem polega na tym, że nie wiem jak mogę to uprościć, aby liczby mogły być zapisywane jako 1, 2, ... 7, 8, 9 , 10 , 11, ... 98, 99, 100, 101, a nie 001, 002, ... 007, 008, 009 , 010 , 011, ... 098, 099, 100, 101, bo przecież skrypt musi wiedzieć, jak odczytać na przykład coś takiego 123456(tak 123, 456, czy może tak 12, 34, 56, a może 12, 3, 456, albo jeszcze inaczej). Myślałem także nad liczbami w systemie 16-wym, dzięki czemu dwucyfrowa liczba mogła by mieć wartości od hex:00 (dec:0) do hex:ff (dec:255), jednakże czasami potzrebna jest większa liczba, więc musiałbym stosować trzyznakowe od 000 do fff i tu znów pojawia się ten sam problem, bo liczby muszą się składać aż z trzech znaków. Czy da się coś zrobić, aby każdy rekord w bazie danych nie rozpoczynał się długim ciągiem cyfr typu 0080050090a40060040100c2:?: |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 0 Dołączył: 29.04.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
kiedyś się pisało teraz rzadziej
teraz moją miłością oraz poezją jest php aczkolwiek coś od czasu do czasu bazgrnę --------------------------------------------------- Mam pytanie: robię sobie licznik wersji, przy każdej modyfikacji pliku licznik zwiększa się o jeden, żeby tego było mało nie robię tego dla jednego pliku tylko dla całej masy plików; najpierw mój skrypcik sprawdza czy dany plik, ten który się w danym momencie otwiera jest w bazie czy nie... i tu się zaczyna już problem ... do bazy zapisywana jest nazwa pliku ze scieszką, czas ostatniej modyfikacji itp., wszystko to czyli dane na temat jednego pliku zapisywane są w jednej linii (na szczęście nie jest tego dużo) kolejny plik kolejna linia w bazie itd. ale gdy plik jest w bazie i czas ostatniej akutalizacji różni się od faktycznego to chciałbym zmodyfikować dane w bazie a tym samym licznik zwiększyć o jeden (licznik to mi się zwiększa z tym nie mam problemu) tylko z modyfikacja są problemy czy wiecie jak to zrobić? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 14:37 |