Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Alles was nicht wirklich Programmierung ist, aber auch nicht Plaudereien im Raucherraum

Moderator: Moderatoren

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14846
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 31 Mal
Danksagung erhalten: 111 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Jan »

... und was genau hat das mit der (berechtigten) Bitte von Tom zu tun, doch bitte klar ersichtlich zwischen Deinen eigenen Texten und denen irgend einer KI zu unterscheiden? ich denke das war der Grund für sein Fragezeichen. Wobei da auch meines hätte stehen können, denn ich hatte mich das auch gefragt nach Deiner Antwort auf seine Bitte.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Jan, hier ging es um Plan B, den Carlo vorschlägt, dass man ihn haben sollte, und RDP ist z. B. so ein Plan.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9737
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 126 Mal
Danksagung erhalten: 438 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Tom »

Und mir ging es nicht darum, worum es ging, sondern darum, dass Du hier massenweise Text postest, den Du generieren lässt.
Herzlich,
Tom
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Um diese Initiative auf ein professionelles Niveau zu heben, könnte man überlegen, als Verein ein Förderansuchen für ein Forschungsprojekt bei der EU einzureichen. Theoretisch, laut Recherche, sollte es möglich sein, und auch, dass Eigenleistung als Eigenkapital zählt und verrechnet werden kann.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14846
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 31 Mal
Danksagung erhalten: 111 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Jan »

Otto,

soweit ich das sehe bist Du der Einzige hier im gesamten Forum, der so etwas machen möchte. Da musst Du also vermutlich Deinen eigenen Verein gründen um das so zu entwickeln wie Du Dir das vorstellst. Wobei ich stark bezweifle das die EU Gelder in ein sowas von totgerittenes Pferd investieren würde. Die bezahlen so manches wo man sich fragen kann was das soll. Aber das hier wird sehr sicher nirgends durchkommen. Insbesondere da Du die dbf-Sache ständig mit Deinen Oberflächen und Deiner Benutzerführung vermengst.

Wobei dieser vollkommen unzusammenhängende Post von Dir auch keine Antwort auf das ist was Tom schrieb. Oder ich. Oder sonstwer in diesem Thread.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
RolandG
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 282
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 11 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von RolandG »

EU-Antrag... das wird eher eine Petition zum Schutz einer aussterbenden Art...
Gruß
Roland
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9737
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 126 Mal
Danksagung erhalten: 438 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Tom »

Es gab ein Buch, das jemand unter wahrscheinlich falschem Namen veröffentlicht hatte, das ich bei solchen Gelegenheiten gerne empfohlen habe, allerdings finde ich es bei den Onlinern nicht mehr im Sortiment. Das hier ist es:
sgsf.png
sgsf.png (800.04 KiB) 1139 mal betrachtet
Herzlich,
Tom
RolandG
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 282
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 11 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von RolandG »

@Tom: wenn jemand in einem Forum was schreibt hat er keinesfalls vor ein Selbstgespräch zu führen. Zumal an diesem "Selbstgespräch" bereits 56 Antworten hängen...
Gruß
Roland
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Um vielleicht doch wieder etwas Sachlichkeit in dieses Thema zu bekommen und zum Wochenende poste ich mal eine Liste der bisher auf PHP umgesetzten Funktionen.
Bibliothek PHP4DBF und ihre Funktionen.

Funktionen:

php4dbf_logline: Protokolliert Nachrichten in eine Logdatei.
php4dbf_openDbf: Öffnet eine DBF-Datei.
php4dbf_eof: Bestimmt das Dateiende (EOF) basierend auf der Anzahl der Datensätze in der aktuell geöffneten DBF-Datei.
php4dbf_DBUse: Liest alle erforderlichen Informationen aus einer DBF-Datei auf einmal und gibt sie zurück.
php4dbf_getDbfHeader: Ruft den Header einer DBF-Datei ab.
php4dbf_getFieldDescriptors: Ruft die Feldbeschreibungen einer DBF-Datei ab.
php4dbf_padValue: Füllt Werte entsprechend ihrem Typ korrekt auf.
php4dbf_addRecordToDbf: Fügt Datensätze zu einer DBF-Datei hinzu.
php4dbf_calculateRecordLength: Berechnet die Länge eines Datensatzes basierend auf den Feldbeschreibungen.
php4dbf_updateRecord: Aktualisiert einen Datensatz in einer DBF-Datei.
php4dbf_deleteRecord: Löscht einen Datensatz in einer DBF-Datei.
php4dbf_createDbf: Erstellt eine neue DBF-Datei.
php4dbf_compareDbfFiles: Vergleicht zwei DBF-Dateien.
php4dbf_getRecordByIndex: Ruft einen Datensatz anhand seines Index ab.
php4dbf_numrecords: Gibt die Anzahl der Datensätze in einer DBF-Datei zurück.
php4dbf_numfields: Gibt die Anzahl der Felder in einer DBF-Datei zurück.
php4dbf_get_record_with_names: Ruft einen Datensatz mit Feldnamen aus einer DBF-Datei ab.
php4dbf_close: Schließt eine DBF-Datei.
php4dbf_loadAllFile: Lädt die gesamte DBF-Datei in den Arbeitsspeicher.
php4dbf_loadAllHeader: Extrahiert Header-Informationen aus der Dateiinhalt-Zeichenkette.
php4dbf_readHeader: Liest Header-Informationen aus einem Dateizeiger.
php4dbf_extractFields: Extrahiert Feldbeschreibungen aus den geladenen DBF-Daten.
php4dbf_readRecordByIndex: Liest einen Datensatz basierend auf dem angegebenen Index.
php4dbf_closeDbfFile: Schließt einen geöffneten DBF-Datei-Handle, falls vorhanden.
php4dbf_openFile: Öffnet eine DBF-Datei und lädt entweder den gesamten Inhalt oder nur den Header.
php4dbf_getLastUpdateDate: Extrahiert das Datum der letzten Aktualisierung aus dem DBF-Header.
php4dbf_flock: Versucht, eine Sperre und Sperrdatei zu erstellen.
php4dbf_phpunlock: Gibt die Sperre frei, die mit flock in PHP erstellt wurde.
php4dbf_unlock: Gibt die benutzerdefinierte Sperre frei, indem Sperrdateien gelöscht werden.
php4dbf_updateField: Aktualisiert ein bestimmtes Feld innerhalb eines Datensatzes in einer DBF-Datei.
php4dbf_updateLastModifiedDate: Aktualisiert das Datum der letzten Änderung im DBF-Header.
php4dbf_checkFileSizeConsistency: Überprüft die Konsistenz der Dateigröße mit der Anzahl der Datensätze.
php4dbf_appendBlank: Fügt einen leeren Datensatz zu einer DBF-Datei hinzu.
php4dbf_getHeader: Hilfsfunktion zur Verarbeitung von Header-Informationen.
php4dbf_DBUse: Öffnet eine DBF-Datei und liest den Header sowie die Feldbeschreibungen.
FieldPos: Gibt die 1-basierte Position eines Feldes anhand seines Namens zurück.
FieldName: Gibt den Namen eines Feldes anhand seiner 1-basierten Position zurück.
FieldPosLast: Gibt die 1-basierte Position des letzten Feldes zurück.
php4dbf_dbGoTop: Bewegt den Datensatzzeiger zum ersten gültigen Datensatz.
php4dbf_dbGoTo: Bewegt den Datensatzzeiger zu einem bestimmten Datensatz.
php4dbf_init: Initialisiert die DBF-Datei zum Lesen.
php4dbf_get_next_record: Liest den nächsten Datensatz aus der DBF-Datei.
php4dbf_parse_record: Analysiert einen Datensatz aus Roh-Binärdaten in ein assoziatives Array.
php4dbf_convert_value: Konvertiert einen Roh-Binärwert in den entsprechenden Datentyp basierend auf dem Feldtyp.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2558
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 19 Mal
Danksagung erhalten: 86 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von ramses »

Hallo Otto

PHP hatte doch bis zur Version 5.3.0 Standardmässig eine Erweiterung um mit DBF Files umzugehen
.
aus dem PHP Handbuch:
Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.3.0.
Diese Funktionen erlauben Ihnen den Zugriff auf Datensätze, die in Datenbanken im dBase-Format (dbf) vorliegen.

Warnung: Wir empfehlen, keine dBase-Dateien als Produktions-Datenbank zu verwenden. Wählen Sie dafür stattdessen » SQLite oder einen echten SQL-Server; » MySQL oder » Postgres sind bei PHP eine gute Wahl. Die dBase-Unterstützung durch PHP dient hauptsächlich dem Im- und Export von Daten zu oder aus ihrer Web-Datenbank, weil das DBF-Datei-Format allgemein von Windows-Tabellenkalulationen und -Zeitplanern verstanden wird.
Wieso willst du das Rad neu erfinden wenn das schon lange vorhanden und heute total veraltet ist.
Valar Morghulis

Gruss Carlo
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Carlo, eigentlich, weil, wie du sagst, man einen Plan B braucht.

PHP 5.3.0 wurde am 30. Juni 2009 veröffentlicht – seitdem gibt es bei PHP keine mir bekannte fokussierte Entwicklung, die sich mit DBF befasst.

Ich arbeite schon lange mit Low-Level-Zugriff. Es gab ja schon unter Windows Pocket PC das Problem, dass keine DBF-Treiber vorhanden waren.
Ich bin hier gut eingearbeitet, und ich sehe Potenzial.

Viele kleine und mittlere Unternehmen in unterschiedlichen Ländern verwenden immer noch „alte“ ERP- oder Buchhaltungslösungen, die auf dBase-Basis entwickelt wurden. Auch hier im Forum sind viele.

Es ist einfach eine Frage der Ressourcen. Wer hat Zeit, zuerst seine Desktopanwendung auf eine neue Datenbank umzustellen und gleichzeitig die Webprogramme zu entwickeln?

Wer hätte sich bei Elektroautos gedacht – nachdem sie am Anfang vor 100 Jahren sehr erfolgreich waren – dann komplett als wenig leistungsfähig, etc. abgetan wurden, nun unsere Zukunft sind. Was wäre gewesen, wenn man diese Fehleinschätzung nicht gemacht hätte?

lg
Otto
RolandG
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 282
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 11 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von RolandG »

ramses hat geschrieben: Sa, 11. Jan 2025 8:10 Warnung: Wir empfehlen, keine dBase-Dateien als Produktions-Datenbank zu verwenden. Wählen Sie dafür stattdessen » SQLite oder einen echten SQL-Server; » MySQL oder » Postgres sind bei PHP eine gute Wahl. Die dBase-Unterstützung durch PHP dient hauptsächlich dem Im- und Export von Daten zu oder aus ihrer Web-Datenbank, weil das DBF-Datei-Format allgemein von Windows-Tabellenkalulationen und -Zeitplanern verstanden wird.
Seltsam einseitige Aussage in einem Anwenderhandbuch. Da mag scheinbar jemand Microsoft nicht...
Gruß
Roland
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Roland, ich denke, das ist aus einer Zeit, in der der Wettstreit zwischen asp und php noch nicht entschieden war.
LG
Otto
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2187
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 34 Mal
Danksagung erhalten: 83 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Werner_Bayern »

Vielleicht ist die KI nicht darauf trainiert, auf solche Fragen zu antworten :lol:
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Hallo Werner,

da es gerade zum Thema KI und Xbase++ Entwicklertreffen 2025: Vortrag: Umstellung einer DBF-Anwendung auf JSON passt.

Ich habe mit PHP2DBF einen sehr komfortablen Konverter gebaut.

DBF2JSON Converter: Interactive DBF Query and JSON Transformation Tool


Du gibst einfach den Datenbankpfad und Namen ein, die Felder, die ins JSON sollen, und dann lässt du von ChatGPT die Abfragefunktion erstellen: z. B.

Zum Beispiel könnte ich sagen: Gib nur Buchungen vom 25.8.2024 aus und ändere den Feldnamen auf Reservierungsdatum. Füge den Wochentag dazu.
Die Funktion, die ChatGPT erstellt, gibst du dann in das vorgesehene Textfeld und sagst "Convert JSON".
Und du erhältst dann die fertige JSON-Ausgabe.

Hier ein Link zur Programmbeschreibung:
https://winhotel-sandbox.com/docs/DBF%2 ... 0JSON.pdf
LG
Otto


Bild
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2187
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 34 Mal
Danksagung erhalten: 83 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Werner_Bayern »

Danke Otto,

damit triffst Du den Nagel auf den Punkt, genau das wollte ich wissen.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Hallo Werner,

wie geht es dann weiter?

Ich frage ChatGPT weiter z. B.:

Kannst du mir nun mit Bootstrap und Awesomefont eine schön gestaltete Anreiseliste erstellen mit einer Tabelle und einem Feld zum händischen Abhaken? Bitte lese die Daten aus der JSON-Datei anreisen.json. Wir haben 34 Zimmer. Ständige Gäste sind 13 und eben die, die anreisen, aus dem JSON. Mach mir auch eine Grafik dazu.
Die nicht belegten Zimmer müssen in der Grafik angezeigt werden. Die Grafik bitte max. 300 Pixel hoch.


Erhalte den HTML-Code und habe schon den Report fertig. Ich werde meine bisherige Entwicklung in Sachen HTML-Reports im HTML-Forum dann posten.

LG
Otto




Bild
RolandG
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 282
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 11 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von RolandG »

Otto
ich wundere mich schon eine Zeit lang - vieles hat doch mit Deinem gewählten Titel
"Standardisierung und Weiterentwicklung des DBF-Formats" nichts zu tun.
In den Beiträgen geht es um Portierung/Einbindung/Erweiterung mit/zu anderen Programmiersprachen, Tools, Add-Ons usw. Das sind alles Dinge die weg von Xbase++ führen - und damit weg vom DBF-Format.

Schnittstellen in verschiedenen Programmiersprachen und Programmen zu DBF gibt es wie Sand am Meer - sind doch nur für diejenigen Interessant die das brauchen. Das wird dann eingebunden und vergessen...
Gruß
Roland
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9737
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 126 Mal
Danksagung erhalten: 438 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Tom »

Ich muss gestehen, dass ich auch nach fast 70 Beiträgen in diesem Thread keine Peilung habe, was das alles soll. Hier werden Themen vermischt und bizarre Vorschläge gemacht, aber auf die Antworten wird nicht eingegangen, stattdessen kommt das nächste Kaninchen aus dem Hut. Ich bin raus.
Herzlich,
Tom
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Ich denke, Tom, das passt. Du spielst ja als große Entwicklerfirma in einer anderen Liga. DBF ist da sicher kein Thema.

Hier, das ist etwas für die eher Kleineren.
Auch ist der "Plan B" für die Kleinen besonders wichtig, weil, wenn "Plan A" nicht mehr passt, dann liegt man als Einzelentwickler komplett daneben und ist aus dem Geschäft.
LG
Otto
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9737
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 126 Mal
Danksagung erhalten: 438 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Tom »

Das hat damit überhaupt nichts zu tun, Otto.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9737
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 126 Mal
Danksagung erhalten: 438 Mal
Kontaktdaten:

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von Tom »

Am Rande: DBF nach JSON ist mit Xbase++ und USQL ein Dreizeiler:

Code: Alles auswählen

aObjects := {}
SELECT * FROM (<cWorkArea>) INTO OBJECTS aObjects
? Var2Json(aObjects)
Wenn man das Sternchen durch Feldnamen ersetzt ... na, Ihr wisst schon. ;)
Herzlich,
Tom
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Lieber Tom,
danke für die Anregung.
Ich habe nun die Funktion, dass man nur bestimmte Felder zurückgibt, als Parameter in php4dbf_parse_record() eingefügt.

Code: Alles auswählen

/**
 * Parst einen Datensatz aus Rohdaten in ein assoziatives Array.
 *
 * @param string $recordData Die rohen Binärdaten des DBF-Datensatzes.
 * @param array $fields Eine Liste der Feldbeschreibungen der DBF-Datei.
 * @param array $requestedFields (Optional) Array von Feldnamen, die extrahiert werden sollen. Standard ist leer (alle Felder werden extrahiert).
 * @param int|null $index (Optional) Der Index des Datensatzes (für die Rückgabe). Standard ist null.
 * @return array Gibt den Datensatz als assoziatives Array mit Feldnamen und Werten zurück.
 */
Die Funktion fread ist der Schlüsselbefehl, der die Rohdaten eines Datensatzes ($recordData) liefert.
Ich ändere aber vor allem für Schulungen und zur Vereinheitlichung des Codes fread.

Die Low-Level-Funktionen wie fread werde ich auch in die php4dbf nehmen, in einer eigenen Funktion mit einem Clipper/Harbour-ähnlichen Namen.
Das macht den Code lesbarer und erleichtert die Umstellung für Entwickler, die mit Clipper/Harbour vertraut sind.

Code: Alles auswählen

php4dbf_dbGetRecord()
/**
 * Liest einen Datensatz aus einer DBF-Datei basierend auf dem Index.
 *
 * @param array $DBData Ein Array mit den DBF-Metadaten (z. B. aus `php4dbf_DBUse`).
 * @param int $index Der 1-basierte Index des Datensatzes, der gelesen werden soll.
 * @return string|null Gibt die rohen Datensatzdaten zurück oder null, wenn der Datensatz gelöscht ist.
 * @throws Exception Wenn ein ungültiger Index angegeben wird oder ein Leseproblem auftritt.
 */
In der Anwendung habe ich dann nur:

Code: Alles auswählen

$recordData = php4dbf_dbGetRecord($DBData, $index);
if ($recordData !== null) {
    $parsedRecord = php4dbf_parse_record($recordData, $DBData['fields'], $requestedFields, $index);
}
Der neue Funktionsname php4dbf_dbGetRecord fühlt sich vertraut an und erinnert an typische Clipper-Funktionen wie DBGET() oder ähnliche.

LG
Otto
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 743
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Initiative zur Standardisierung und Weiterentwicklung des DBF-Formats

Beitrag von azzo »

Experiment zur Optimierung der Volltextsuche in Memo-Dateien

Hallo zusammen,

ich habe ein spannendes Experiment durchgeführt, um die Volltextsuche in Memo-Dateien zu optimieren. Hier eine kurze Zusammenfassung:

Ausgangssituation:
Daten: Memo-Felder aus einer DBF-Datei (forums.dbf, 921 MB, 271.585 Datensätze) wurden in 271.585 einzelne TXT-Dateien ausgelagert.
Problem: Die Suche in einem Ordner mit allen TXT-Dateien dauerte 50 Sekunden.
Optimierungen:
Aufteilung der Dateien:

Die Dateien wurden auf 4 Ordner verteilt.
Mit rg.exe (ripgrep) und paralleler Suche wurde die Zeit auf 12–14 Sekunden reduziert.
Indexdatei:

Eine zentrale Indexdatei wurde erstellt, die alle Texte aus den Memo-Dateien enthält.

Bild

Direkte Suche mit rg.exe:

Die direkte Suche mit rg.exe in der Indexdatei ist pfeilschnell und dauerte nur 0,335 Sekunden.

Bild

Nächste Schritte:

Temporäre Indexdatei:
Bei Änderungen wird eine tmp-Indexdatei erstellt und die Hauptindexdatei inkrementell aktualisiert.
Fazit:
rg.exe ist ein Game-Changer: Es bietet SQL-ähnliche Geschwindigkeit bei der Volltextsuche.

Einfachheit und Transparenz: Die Lösung nutzt einfache Tools und behält die volle Kontrolle über die Daten.
Ich bin gespannt auf eure Gedanken und Anregungen!
LG
Otto
Antworten

Zurück zu „Sonstige (technische) Fragen“