Thread Kniffliger programmschnipsel (7 answers)
Opened by shaihulud at 2006-05-11 17:51

shaihulud
 2006-05-11 17:51
#65971 #65971
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl

open(DATEI, "<./Konfigurationsdaten/20060310.DOCFIELD") || die "Fehler beim öffnen von Datei $datei - $!";
my @Zeilen = <DATEI>;
close(DATEI);
my %hash2;
my $old_doc;
my %hash;


 foreach (@Zeilen){
     if (/(\w+)\;(\d+)\;(\d+)/){
       $dokuart =  $1;
       $zahl1 =  $2;
       $zahl2 =  $3;
       if(!defined $old_doc){
         $old_doc = $dokuart;
       }
       if($dokuart!=$old_doc){
       $hash2{$old_doc}=\%hash;        
       %hash;                 #<---vielleicht liegt hier das problem
       }
       open(DATEI, "<./Konfigurationsdaten/20060310.REPOSITORY") || die "Fehler beim öffnen von Datei $datei - $!";
       my @Zeilen2 = <DATEI>;
       close(DATEI);
       foreach(@Zeilen2){
         if(/^$zahl2;(^[;]+)/){
           $hash{$zahl1}=$1;                                
         }
       }        
     }
     $old_doc = $dokuart;
 }
 
 
 foreach my $ele ( keys(%hash2)){
   print "$ele\n";
   foreach my $ele2 (keys %{ $hash2{$ele} }){
     print "$ele2\n";
     print "$hash2{$ele}{$ele2}\n";
  }
 }


Datei Konfigurationsdaten/20060310.DOCFIELD sieht so aus:
DOK01;1;1;1;  0 0     ;;;;0;0
DOK01;8;8;1;  0 0     ;;;;0;0
DOK01;63;77;1;  0 0     ;;;;0;0
REO;53;47;1;  0 0     ;;;;0;0
REO;23;24;1;  0 0     ;;;;0;0
SAPDL;24;25;1;  0 0     ;;;;0;0
SAPDL;25;26;1;  0 0     ;;;;0;0
SAPDL;13;62;1;  0 0     ;;;;0;0
etc.....

Datei Konfigurationsdaten/20060310.REPOSITORY sieht so aus:
23;Patient-ID neu;Patient-ID neu;22;0;-1;;;;CHAR;35;0;0;;
24;Dateiname;Dateiname;23;0;-1;;;;CHAR;35;0;0;;
25;Drucklisten-Art;Drucklisten-Art;24;0;-1;;;;CHAR;4;0;0;;
26;Mandant;Mandant;25;0;-1;;;;CHAR;3;0;0;;
27;Report;Report;26;0;-1;;;;CHAR;35;0;0;;
28;Reportname;Reportname;27;0;-1;;;;CHAR;35;0;0;;
etc....

Möchte einen Hash2 haben in dem hash immer unter dokuart gespeichert wird, aber meine ausgabe ist nur :
59
49
DAREG

Die Ausgabe ist somit auch nicht richtig, da die ausgabe eigentlich eine zahl und zwei einträge haben muesste (zb "REO" "23" "Dateiname")

D.h. irgendwo stimmt mein Code nicht, aber ich finde keinen Fehler...
latein am ende...\n\n

<!--EDIT|shaihulud|1147358345-->

View full thread Kniffliger programmschnipsel