Verarbeiten von Textdatenbanken (schreiben, editieren und löschen)
In eine Datei schreiben ist leicht, schwieriger ist es da schon an die Dateiinhalte heranzukommen um diese sicher zu editieren, zu aktualisieren oder zu löschen. Ich werde hier einige Praxisbezogene Beispiele vorstellen, die sich mit der Problematik befassen.
1. In eine Datei schreiben
Grundsätzlicher Aufbau
Öffnet man eine Datei mit >> bedeutet dass das hier die Daten am Dateiende angehängt werden. Hiermit > wird die Datei hingegen überschrieben.
open (FILE, ">>$dateipfad/daten.dat") or scripterror("Fehler: Kann daten.dat nicht oeffnen!",$!); flock (FILE, 2); print FILE "$id|$email|$url|$namen"; close FILE;
Wenn man von vornherein plant die Dateiinhalte später editieren oder löschen zu wollen ist es eine gute Idee eine eindeutige ID für jede Zeile zu vergeben. Dies kann eine Kombination von Zufallszeichen, die Zeit, ein Counterwert oder ähnliches sein. Mit dieser ID ist dann eine eindeutige Zuordnung leicht herzustellen.
Eine Zeile aus einer Datei löschen
Grundsätzlicher Aufbau
open (DATEN, "+>>$dateipfad/daten.dat") or scripterror("Fehler: Kann daten.dat nicht oeffnen!",$!); flock (DATEN, 2); seek DATEN, 0, 0; my @daten = <DATEN>; my @neue_daten = (); foreach $daten (@daten) { chomp $daten; ($eintragsid,$email,$url,$name) = split(/|/, $daten); if ($eintragsid ne $id) { $daten = "$datenn"; push @neue_daten, $daten; } } seek DATEN, 0, 0; truncate DATEN, 0; print DATEN @neue_daten; flock (DATEN, 8); close DATEN;
Wie funktioniert’s?
Hier wird die Datei zum Aktualisieren geöffnet, dann der Dateizeiger mittels seek DATEN, 0, 0; an den Anfang der Datei gesetzt.
Nun wird ein neues, leeres Array definiert mit my @neue_daten = ();
In der nachfolgenden foreach Schleife foreach $daten (@daten) { werden die Dateizeilen durchlaufen und das n am Zeilenende mittels chomp $daten; entfernt.
Dem schließt sich das splitten der Zeilen an
($eintragsid|$email|$url|$name) = split(/|/, $daten);.
In dem Codeblock:
if ($id ne $eintragsid) { $daten = "$datenn"; push @neue_daten, $daten; }
werden nun die Dateiinhalte die nicht (ne) mit der ID übereinstimmen in das neue Array ge“push“t.
Nun wird der Dateizeiger wieder an den Dateianfang positioniert, der Dateiinhalt komplett gelöscht mit truncate DATEN, 0; und der Inhalt des Arrays in die Datei print DATEN @neue_daten; geschrieben.
Weitere Beiträge
iPhone 15, Apple Watch Series 9 und Ultra 2 bei Amazon gelistet

Die brandneuen Apple-Geräte sind rechtzeitig zum Start des Verkaufs nun auch bei Amazon verfügbar. Ab sofort kann man das iPhone 15, iPhone 15 Plus, iPhone 15 Pro und iPhone 15 Pro Max, sowie die Apple Watch Series 9 und die Apple Watch Ultra 2 bestellen. Auch wenn die aktuellen Modelle nicht schneller geliefert werden, gibt […]
GoodNotes 6 mit neuen Funktionen: KI-Notizen, Mathe-Assistent, dynamischen Vorlagen

GoodNotes 6: Aktuell wurde die neue Version der beliebten Notiz-App vorgestellt. Die Funktionalität ist nun plattformübergreifend auch für Windows und Android verfügbar. Außerdem spendieren die Macher einige KI-basierte Funktionen. Damit wird die beliebte App auch teurer. Es wird auf ein Jahresabonnement für alle Funktionen umgestellt.
Audible Hörbuch herunterladen: So sparen Sie Datenvolumen auf dem Handy

Audible Hörbuch herunterladen. Möchten Sie Hörbücher von Audible unterwegs auf Ihrem Handy hören, ohne Ihr Datenvolumen zu verbrauchen? Wenn Sie ein begeisterter Hörbuch-Fan sind, wissen Sie, dass das Streaming von Hörbüchern auf Ihrem Mobiltelefon schnell zu einem Datenvolumen-Problem führen kann. Eine Lösung für dieses Problem ist das Herunterladen von Audible-Hörbüchern auf Ihr Smartphone.
Prime Day 2023: Auf die Plätze. Fertig. Los!

Der neue Prime Day 2023 steht in den Startlöchern. Amazon bietet derzeit bereits viele attraktive Rabatte an. Schnäppchenjäger sollten schon jetzt bei Amazon vorbeischauen. Hier kann schon vor dem Shopping-Event kräftig gespart werden. Aufgeweckte Shopper finden sicherlich einige interessante Angebote.
Keine Kommentare vorhanden