Witam,
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:
  1. $db = dbase_open(PLIK.DBF', 0);
  2. if ($db) {
  3. $record_numbers = dbase_numrecords($db);
  4. for ($i = 1; $i <= $record_numbers; $i++) {
  5. $row = dbase_get_record_with_names($db, $i);
  6. echo $row['DATA']."<br />\n";
  7. }
  8. }


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.
  1. echo substr($row['DATA'], 0, 1)."<br />\n";

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.