Mam mały problem. Mam bazę DBF w której jest 40rekordów. Jak otwieram ją w OOo, to wyświetla mi się tylko 6 rekordów.
Podejrzałem ten plik w notepad++ i okazało się, że pozostałe 34 rekordy poprzedzone są gwiazdką (*). Domyślam się, że jest to pewien sposób na usunięcie (zakomentowanie) zbędnych rekordów.
Czy ktoś jest mi w stanie powiedzieć w jaki sposób mogę w PHP odróżnić takie rekordy?
Próbowałem tak:
$db = dbase_open(PLIK.DBF', 0); if ($db) { $record_numbers = dbase_numrecords($db); for ($i = 1; $i <= $record_numbers; $i++) { $row = dbase_get_record_with_names($db, $i); echo $row['DATA']."<br />\n"; } }
Wtedy wypisuje mi wszystkie 40 wpisów.
Jak zrobić, żeby wypisał mi tylko te 6 rekordów, które nie są poprzedzone gwiazdką?
Dodam jeszcze tylko, że $row['DATA'] to pierwsza kolumna.
Taki wpis wyświetla mi zawsze pierwszy znak z pierwszej kolumny. To oznacza, że gwiazdki są jakby przd pierwszym rekordem.
Edit:
Wyczytałem w manualu, że mozna tak zakomentować rekord za pomocą dbase_delete_record. Pytanie teraz jak mam dać warunek, który będzie mi sprawdzał czy rekord jest zakomentowany (usunięty), czy jest normalny. I czy w ogóle da się zrobić taki warunek.
Problem rozwiązałem nieco inną drogą.
W samą bazę nie chcę ingerować.
Obszedłem to w ten sposób, że baza jest kopiowana i na kopii wykonuję dbase_pack(). Plik jest malutki i wszystko się kopiuje w mgnieniu oka.
Wydaje mi się, że nie da się wyświetlić tylko rekordów które są oznaczone do usunięcia, albo przynajmniej nie da się tego zrobić w prosty sposób.