next up previous contents index



31.4 Dateiname einer ausgelagerten Seite

Nachdem wir nun wissen, wie wir auf eine Archivista-Datenbank zugreifen können, möchten wir anhand einiger Perl-Zeilen exemplarisch aufzeigen, wie wir aufgrund einer Datenbankabfrage die entsprechenden Bitmap-Seiten in den entsprechenden Verzeichnissen finden:

sub GetDateiName {
    my $modus = shift;  # A- bzw. B-Kopie
    my $akte = shift;   # Aktennummer
    my $seite = shift;  # gewünschte Seite
    return $modus . FileName($akte,5,) . FileName($seite,2);
}

sub FileName {
  my $eingabe = shift;
  my $anzahl = shift;
  my ($res,$res1,$out);
  while ($eingabe != 0) {
    $res = $eingabe % 26;
    $res1 = $res + 65;
    $out = chr($res1).$out;
    $eingabe = $eingabe - $res;
    $eingabe = $eingabe / 26;
  }
  $out = "0" x ($anzahl - length($out)) . $out;
  return $out;
}

Der obenstehende Code dokumentiert das Berechnen des Dateinamens aus der Aktennummer und einer gewünschten Seite. Zusätzlich muss aus der Tabelle 'archiv' der Typ der Akte (Feld 'ArchivArt' enthält die nachfolgenden Werte 0=BMP/ZIP,1=TIF,2=PNG sowie 3=JPG) für die Dateiendung sowie der gewünschte Ordner (Feld 'Ordner') berechnet werden, um den gesamten Pfad einer Seite berechnen zu können.

Ebenfalls beachtet werden muss, ob eine Akte bereits archiviert wurde (Feld 'Archiviert' in der Tabelle 'Archiv'). Ist dies der Fall, so befindet sich die gewünschte Seite nicht im Input- sondern im Output-Pfad. Den entsprechenden Ordnernamen (einer nicht archivierten Akte) im Input-Pfad erhalten Sie (leicht vereinfacht gesagt) dadurch, dass Sie von einer Aktennummer mit Modulo 100 den Restwert nehmen und so im entsprechenden Unterordner die gewünschte Seite finden. Nachfolgend noch zwei Beispiele:

Seite im Input-Ordner: Akte 1, Seite 1 mit A-Kopie und dem Wert '1' beim Feld 'ArchivArt' befindet sich unter '..\input\in001\A0000B0B.TIF'.

Seite im Output-Order: Akte 2, Seite 3 mit B-Kopie und dem Format 'JPEG' ist bereits archiviert und liegt im Archivordner '1' (Feld 'Ordner'). Diese Seite finden wir unter '..\output\ARCH0001\B0000C0D.JPG'.

Image tip Einen guten Anhaltspunkt, wie Sie mit einer Archivista-Datenbank kommunizieren können, bietet auch die Publishing-Edition von Archivista. Dort finden Sie einen kompletten Source-Code, um (inkl. der korrekten Anmeldung) mit Archivista-Datenbanken zu kommunizieren.


next up previous contents index