Thread Zwei Dateien vergleichen (4 answers)
Opened by Mary at 2007-07-06 14:13

Mary
 2007-07-06 14:13
#78278 #78278
User since
2006-06-25
17 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich möchte hier meine Frage aus einem anderen Thread nochmal stellen. Vielleicht kann mir jemand helfen. Bin leider nicht so fit im Programmieren, muss aber diese Aufgabe unbedingt lösen!

Es geht um zwei Textdateien, die Einträge der Form

jmd. hat ein Haus
jmd. hat ein Auto
jmd. baut ein Haus

enthalten.

Es soll überprüft werden, ob die Einträge aus Datei2 auch in Datei1 enthalten sind und wenn es nicht der Fall ist, muss Datei1 um die fehlenden Einträge ergänzt werden.

Hier ist eine Lösung, die aus jedem Eintrag das großgeschriebene Wort herausfiltert und als Abgleichkriterium benutzt. Diese Lösung funktioniert ganz gut, muss aber dadurch ergänzt werden, dass auch nach dem Verb gesucht wird:

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
#!/usr/bin/perl

use strict;
use warnings;
use Tie::File;

my $file_one = 'Datei1.txt';
my $file_two = 'Datei2.txt';

open my $fh, '<', $file_one or die $!;
tie my @lines, 'Tie::File', $file_two or die $!;

while( my $line = <$fh> ){
   chomp $line;
   my @words = $line =~ /\b([A-Z].*?)\b/g;
   for my $word ( @words ){
       unless( check( $word, @lines ) ){
           push @lines, $line;
       }
   }
}

untie @lines;

close $fh;

sub check{
   my ($value) = shift;
   for my $line ( @_){
        return 1 if $line =~ /\Q$value\E/;
   }
   return;
}


Ich freue mich über jeden Tip!

Danke und Gruß

Mary

View full thread Zwei Dateien vergleichen