Pit: Immer noch: Daten per if Anweisung in xx.dat oder yy.dat schreiben

Beitrag lesen

Nein, im Ernst. Du kannst auch mehr als eine Datei gleichzeitig offen halten. Probiere es aus.

Viele Gruesse
  Kess

Hi Kess, hi Cheatah,

genau das hab ich ja versucht und da es nicht gefuntzt hat, hab ich gedacht, man dürfe keine 2 Dateien parallel geöffnet haben und das ganze müsse dann über eine Liaste laufen, usw. usw.

Das ganze sah dann so aus:

open (DB, ">$db\_file\_name") or ("Can't open: $db\_file\_name. Reason: $!");  

if ($db_use_flock) {
   flock (DB, 2);
    }
             foreach (@lines) {
                  next if /^#/;
                  next if /^\s*$/;
                  chomp;
                  @values = &split_decode ($_);

print "Comparing: '$today' vs '$values[$removeby_field]' ... <br>\n";
        if ($today > (&date_to_unix($values[$dateadded_field]) + (86400 * $values[$removeby_field]))) {
                  print "Eintrag archiviert<br>\n";

open (ARC, ">>$db_archive_name") or &cgierr("error in archive_record. unable to open database: $db_archive_name.\nReason: $!");
        if ($db_use_flock) {
          flock(ARC, 2)  or &cgierr("unable to get exclusive lock on $db_archive_name.\nReason: $!");
        }
        print ARC "$line\n";  
      close ARC;    # automatically removes file lock

next;
            }
print DB $_, "\n";
        }
      close DB;

Wie Ihr sicher sehen könnt, geht es darum, Eiträge, die älter sind als eine vorgegebene Anzahl von Tagen, zu archivieren.

Pit

P.S.: Danke schonmal bis hierhin