PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateibasierende Datenbank



dev6
27-07-2001, 15:43
Hallo,

ich habe folgendes Problem:
ich habe alte Perl-Skripts in denen sogenannte .dat und .dir Files anscheinend eine (dateibasierende) Datenbank darstellen.
Ich muss diese Daten jetzt erweitern.

Kann mir jemand sagen was das für eine Datenbank das ist?
Wie kann ich einfach testen ob diese Datenbank funktioniert - mit irgendeinm tool?
Wie kann man von php aus auf diese Datenbank zugreifen?

Leider konnte ich auch in stundenlanger Suche nichts sinnvolles dazu im WWW finden.

Tschau
dev6null

[ 27. Juli 2001: Beitrag editiert von: dev6 ]

dev0
27-07-2001, 16:46
na, wahrscheinlich isses von irgend jemand mal selber gestrickt worden, is schwierig dazu was zu sagen.

was is denn in den files drin? evtl. kannst du die ja wie indizierte textfiles behandeln ...

mfg,
dev0 (der mit der 0 ;-)

dev6
27-07-2001, 17:20
hallo,

ja das vermute ich auch, aber irgendwie habe ich das Gefühl das dies nach einem Standard passiert ist.
Vielleicht besteht noch die möglichkeit kontrolliert auf die Daten zugreifen?!?

Aber wie kann man das feststellen???

dev0
27-07-2001, 17:32
hast mal in so ein file reingeschaut?

dev6
30-07-2001, 11:08
Hallo dev0,
klar hab' ich.

Die .dat-Datei stehen Datensätze in der Form:
kviem3d^?1^?Herr^?Dr.^?Hans^?Müller^?...
aevt3ds^?1^?Herr^?DI^?Thomas^?Blauberger^?...

Die .dir-Datei kann man nicht lesen (Binär-File).

Die .pag-Datei ist von den den Datensätzen her dasselbe wie oben in der .dat-Datei beschrieben (mit anderen Daten) aber ergänzt durch irgendwelche Binär-Teile.

Sagt dir das etwas?

dev6
30-07-2001, 13:20
Naja ich möchte ja folgendes machen:
Die alte Datei sollte zur Zeit noch bestehen bleiben da alte perl-Applikationen noch darauf zugreifen können und nicht merken, dass die Datei durch ein "fremdes" (php-Skript) Programm gewartet wird.

Ausserdem habe ich soeben etwas von SDBM gelesen. Sagt dir das was (irgenden ein altes Format das in Perl-Handbuch kurz erwähnt wir)? Kann man das auch in php verwenden?

cu
dev6

dev0
30-07-2001, 14:04
SDBM ist ein NDBM-clone, php kann NDBM. probiers doch mal mit den funktionen, die dafuer gut sind.

dev0

dev6
30-07-2001, 14:34
hab ich schon. Und dabei folgende Fehlermeldung bekommen:
Warning: driver initialization failed in /usr/local/apache/htdocs/index2.php
on line 1

was hab ich gemacht:
php compiliert:
./configure --with-apache=../apache_1.3.19 --enable-dba --with-db --with-ndb
m --enable-track-vars

eine Datenbank (die sicher funktioniert) bzw. deren .pag, .dir-Dateien in ein Testverzeichnis gelegt und diese mit dem folgen php-Skript aufgerufen:
$handle = dbm_open("/usr/local/berkeley/nu", "c", "ndbm");
echo $handle;

kannst du dir vorstellen was ich falsch gemacht habe?

[ 30. Juli 2001: Beitrag editiert von: dev6 ]

dev0
31-07-2001, 00:22
noe, das is entweder ein ganz altes format, oder aber, wie gsagt, ne eigenkonstruktion. du koenntest versuchen, die daten anhand des trenners '^?' auseinander zu klaemuesern, nur die frage nach den binaerdateien bleibt eben noch ...

dev0