Thread Aus Textdatei nach bestimmten Wort Wörter auslesen (16 answers)
Opened by Gast_13 at 2013-09-12 12:32

Gast Gast_13
 2013-10-10 11:07
#171108 #171108
Noch mal Hallo

Hab es so hinbekommen wie ich das brauche, mit folgendem Programm: (Ist Teil eines größerem, was ich dann noch zusammenfüge)

Code (perl): (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
43
44
#!/usr/bin/perl

use strict;
use warnings;

my $_;
my $name1;
my @wds;

open(my $WorteFh, '>', 'Worte.TXT' ) or die $!;

my @txtfiles = glob( "*.txt" ) or die $!; 

for my $file ( sort @txtfiles )
{
        open( my $fh, '<', $file ) or next;
        local $/;
        my $content = <$fh>;
        close $fh;

my $words = 0;
  
if ($content =~ m{ (\n) \.SUBCKT \b }mix )# Test ob .Subckt enthalten                                                                
    {    
if ($content =~  m/^\.subckt ([\w.\s]+)/im) # Wenn ja, alles nach .Subckt auslesen
        {
        $name1 = $1;
        (undef, my @wds) = split(/ /,$name1);

        next unless @wds;
  
        print join "; ", @wds;
        print "\n";

        $words += scalar(@wds);

        print("words=$words\n");
        print "$file\n$name1\n"; 
        print $WorteFh "$words\n";
        }
    }
}

close $WorteFh;


Bestimmt kann man das auch schöner schreiben, aber für mich ist das so übersichtlich und verständlich wie ich das gemacht habe. Allerdings habe ich jetzt noch das Problem, wenn ich z.B. folgenden Dateiinhalt auslese:

*******************************************
*#
.SUBCKT D1N4148test 1 2
*
* The re

Und hinter der 2 ein Leerzeichen in der Datei ist, dies als ein Wort ausgelesen wird. Kann ich das irgendwie vermeiden?

Lieben Gruß
Last edited: 2013-10-10 11:39:44 +0200 (CEST)

View full thread Aus Textdatei nach bestimmten Wort Wörter auslesen