[vienna.pm] Anfaengerfrage(2)

Rob Ermers robe at vandale.nl
Mon Sep 25 03:05:09 CDT 2000


* * * vienna-pm-list * * *


Liebe Freunde,

Erst am vergangenen Freitag legte ich Euch ein Problem vor. Heute schon fand
ich zwei Antworte in meinen Postkasten. Ich werde die vorgestellten Lösungen
demnächst ausprobieren. Ich halte Euch auf dem Laufenden. Habt meinen
herzlichen Dank!

Schöne Grüsse,

Robert Ermers

[die Antwort von Philippe Guehring]

Du bast einen Hash auf

while (<IN>)
  {
	my %h=();
	chomp;
	if (/([^    ]+)     (.*)/)
    {
	$h{$1}=$2;
    }
  }

Naja, so ungefähr in der Art halt. Und dann gibst du das Ding aus:
print "Nummer	$Nummer\n";
print "Hauptwort	$h{Hauptwort}#$Nummer\n";
print "Uebersetzung	$h{Uebersetzung}#$Nummer\n";


[die Antwort von Roland Bauer]

> Ich suche jetzt ein Perl-script, das vor dem Hauptwort eine Referenznummer
einschiebt, und zwar:
>
> Nummer  112
> Hauptwort       Fisch
> Uebersetzung    vis
> Beispeil                Fische leben im Meer
> UebersetzB.     vissen leven in de zee


[Roland Bauer] Dieser Schritt ist eigentlich unnoetig, je nachdem, wie man's
macht.

> Fuer weitere Bearbeitungen (siehe Unten) wird es noetig sein diese Nummer
hinter die andere Daten schieben zu können:

[Roland Bauer] Je nachdem.

> A. Verzeichnis von Hauptwörtern:
> Blume 324
> Fisch 112
> Kasten 456

> B. Verzeichnis von Uebersetzungen:
> bloem Blume 324
> doos Kasten 456
> kist Kasten 456
> vis Fisch 112
>
> C. Verzeichnis von Wörtern in den Beispielen:
> ich (B) 22, 34, 98, 111, 675
> liebe (B) 98, 324
> Uhr (B) 23, 456
> Meer (B) 77, 112
> ...
>
> Eine weitere Komplikation - nichts ist einfach! - dabei ist das meine
Datei
> nich in der lateinischen Schrift ist, sondern in einer angepassten
> Kyrillische Schrift, wo z.B. ä (=t) ü (=s) folgt. (Unser
> tuerkisch-arabisches Lexikon wird übrigens ins russische uebersetzt.) Um
das
> Verzeichnis richtig zu ordnen, braeuchte ich also noch eine
Sonderscript...

[Roland Bauer] Diese Sortierfunktion ist nicht enthalten, meine Funktion
sortiert nur unabhaengig von groß/klein. Und es werden nicht alle Files
sortiert. Aber das meiste funktioniert ...

[Roland Bauer] Hier ein erster Entwurf:

------------------------------- ENTWURF -----------------------------
#!/usr/bin/perl
# Erzeugt verschiedene Wortlisten

$VERSION = 0.1;

use strict;

open MITREF, ">mitref.txt" or die; # mit Referenznummer (unnoetig)
open HAUPTW, ">hauptw.txt" or die; # unsortiert
open UEBERS, ">uebers.txt" or die; # unsortiert
open BEISP,  ">beisp.txt"  or die;

my $i;                             # Referenznummer
my %beisp;
my $hw;                            # Hauptwort
while (<DATA>) {

 chomp;

 if (/^Hauptwort\s+(.*)/) {
  $hw = $1;
  $i++;
  print MITREF "Nummer $i\n";
  print HAUPTW "$hw $i\n";
 }

 print UEBERS "$1 $hw $i\n" if /^Uebersetzung\s+(.*)/;

 if (/^(Beispiel|Beispeil)\s+(.*)/) { # wegen Tippfehler
  my @words = split /\s+/, $2;
  for my $word (@words) {
   # Value von Hash ist eine Referenz auf einen Array (die Refnummern)
   push @{$beisp{$word}}, $i;
  }
 }

 print MITREF "$_\n";

}
for my $key (sort { lc $a cmp lc $b } keys %beisp) {
 print BEISP "$key (B) ";
 print BEISP join ", ", @{$beisp{$key}};
 print BEISP "\n";
}

__DATA__
Hauptwort       Fisch
Uebersetzung    vis
Beispeil                Fische leben im Meer VON MIR ANGEFUEGT
UebersetzB.     vissen leven in de zee

Hauptwort       Blume
Uebersetzung    bloem
Beispiel                ich liebe Blumen VON MIR ANGEFUEGT
UebersetzB.     ik houd van bloemen

Hauptwort       Kasten
Uebersetzung    doos
Synonym kist
Beispiel                er legte seine Uhr in den Kasten
UebersetzB.     hij legde zijn horloge in de doos
-----------------------------ENDE----------------------------------

Vielleicht interessiert Dich auch die Mailingliste perl-kurs at topica.com ?
**********************************************************************
http://www.vandale.nl
**********************************************************************
###
You are subscribed to vienna-pm-list as Rob Ermers <robe at vandale.nl>
http://www.fff.at/fff/vienna.pm/



More information about the Vienna-pm mailing list