Hallo liebe Leut,
habe folgendes Problem: Ich habe eine Textdatei, wobei jede Zeile einem Datensatz entspricht. Getrennt sind die Felder mit dem Zeichen "|"
Nr. Vorname Nachname
1|stefan|meier
2|otto|mueller
3|sabine|bauer
4|heidi|bach
Nun muss ich z.B. zwischen Satz 3 und 4 einen weiteren einfügen.
Dieser neue Satz soll die Nummer 3.1 erhalten.
1|stefan|meier
2|otto|mueller
3|sabine|bauer
3.1|walter|jansen
4|heidi|bach
Nun kann es vorkommen, das wieder ein Satz zwischen 3 und 4 eingefügt werden muss. Dieser soll nun die Nummer 3.2 erhalten
1|stefan|meier
2|otto|mueller
3|sabine|bauer
3.1|walter|jansen
3.2|evi|albert
4|heidi|bach
Und wenn sowas gegeben ist:
1|stefan|meier
2|otto|mueller
3|sabine|bauer
3.1|walter|jansen
3.2|evi|albert
3.4|herman|otto
4|heidi|bach
Dann soll ein neuer Satz zwischen 3 und 4 die Nummer 3.5 haben.
Wie kann maan das elegant lösen?
Mein Versuch:
open(DATA, "<$daten") || die("can't open/read $daten, $!");
@allRec = <DATA>; # alle Daten in ein Array kopieren
foreach $dataRec (@allRec) # Array durchlaufen
{
($entry{"nr"},$rest) = split(/|/,$dataRec);
if ($entry{"nr"} ne $gFormCtrl{"commentTo"})
{
$foundID = 0;
push(@allRecTMP,$dataRec);
# nicht gefunden => Satz in Hilfsarray koieren
}
else
{
$foundID = 1;
# gefunden
}
}
Meine Frage: Wie kann man die nächste fortlaufenden Nummer finden?
Weiss jemand eine Lösung?
Danke,
Steve