Hallo,
folgender Perl-Code hinterlässt beim Ausführen immer eine leere Zeile am Ende der Datei. Wie kann ich das verhindern?
Der Code soll einen Eintrag mit einer bestimmten ID aus der Datei löschen. Liegt dieser Eintrag irgendwo in der Mitte der Datei, gibt es keine Probleme, wird hingegen der letzte Eintrag gelöscht, bleibt am Ende immer eine leere Zeile über, die beim späteren Wiedereinlesen der Daten Probleme macht.
open(DATEI,"</Users/powermac/Sites/Praxisbedarf/data/database.txt") || die "Fehler beim öffnen der Datenbank, Fehlercode 1 ";
#####################
#!/usr/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
my $id = $cgi->param('id');
my @zeilen;
my @eintrag;
my $anzahl;
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Praxisbedarf | Eintrag ändern</title>
<script type='text/javascript'>
<!--
//-->
</script>
</head><body>\n";
if(($id eq "")) {
print "<p>Bitte kontrollieren Sie Ihre Eingaben.</p>";
}
else {
open(DATEI,"</Users/powermac/Sites/Praxisbedarf/data/database.txt") || die "Fehler beim öffnen der Datenbank, Fehlercode 1 ";
@zeilen = <DATEI>;
close(DATEI);
$anzahl = @zeilen;
for(my $i=0;$i<$anzahl;$i++) {
@eintrag = split(/<>/,@zeilen[$i]);
if(@eintrag[0] == $id) {
splice(@zeilen,($i),1);
}
}
print DATEI @zeilen;
close(DATEI);
print "<p>Der Eintrag mit ID $id wurde erfolgreich gelöscht!";
}
print "</body></html>";
#########################
Habt ihr eine Idee?