Philipp Hasenfratz: Aufzählungen von Begriffen

Beitrag lesen

Halihallo <!-- In diesem Forum wird man gerne begrüsst

Eine einfache Liste:

§§ 1, 3, 5, 10-20, 33

Was wäre hier falsch? - bzw. was würde damit nicht unterstützt werden?

Na ja, der Gesetzestext ist ja vorgegeben. Da kommen die unmöglichsten Aufzählungen vor. Ein abschreckendes Beispiel ist § 100c StPO. Die bisherige Lösung stößt auch an weitere Grenzen. Wenn die Aufzählung mehr als 9 Paragraphen enthält, funktioniert die Wiedergabe der Klammerung nicht mehr (ab '\10').

Was meinst du mit Klammerung?

[...]

mal schaun, was wir da machen können...

also, wir haben doch etwa folgendes:

§§ [n], [n] bis [n], [n] bis [n] oder [n] und [n]

also, alles was [n] ist, sind Paragraphen, die "URL-kodiert" werden sollen (gelinkt werden); alles andere soll so bleiben wie's war. Dann könnte ich mir folgendes vorstellen:

my @codes = split(/, /, $reference_line);
   # @reference_line ist die genannte §§... linie
   # @codes sind dann z. B. '[n]' oder '[n] und [n]'

my @struct;

einlesen und codieren...

foreach my $code (@codes) {
   if ($code =~ /[1]+$/) {
      push @struct, ['simple_paragraph', $code];
      next;
   }
   my @to_parse = split( / /, $code );
      # @to_parse = ('[n]','bis','[n]','oder','[n]','und','[n]');
   foreach my $sub_code (@to_parse) {
      if ($sub_code =~ /[2]+$/) {   # also ein [n]
         push @struct, ['simple_paragraph', $sub_code];
      } else {
         push @struct, ['output_as_text', $sub_code];
      }
   }
}

und jetzt alles ausgeben...

my $output;
foreach (@struct) {
   if ($_->[0] eq 'simple_paragraph') {
      # $_->[1] ist nun irgendein [n], das kann hier noch
      # weiter bearbeitet werden, eg. Gesetzesbuch auslesen...
      $output .= '<a href="...">§$_->[1]</a>';
   } else {
      $output .= $_->[1];
   }
}

1. Hast du noch einige Beispiele (mir ist noch immer nicht ganz klar, wie die Datenstruktur aufgebaut ist; z. B. wie werden Gesetzesbücher mit den Paragraphen in Verbindung gesetzt)?
2. Wo genau hast du Probleme?
3. Was können wir tun, um dir bei deinem Problem zu helfen?

Viele Grüsse

Philipp


  1. 0-9 ↩︎

  2. 0-9 ↩︎