Thread If - Then - Ersetze Syntax (11 answers)
Opened by NeVe at 2019-07-30 08:03

GwenDragon
 2019-08-05 10:09
#190341 #190341
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
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
$in_filename = 'A.DAT';
if ( open my $in_fh, '<', $in_filename ) { # Datei zum Lesen öffnen

if ( open my $out_fh, '>', "$in_filename.out" ) { # Ausgabe-Datei zum Schreiben öffnen

while (my $line = <$in_fh> ) { # eine Zeile einlesen
$line =~ s/\x0A$//; # \n (LF, hex 0A) entfernen

my @felder = split '\|',$line; # |-getrennte Felder aufspalten
if ($felder[3] =~ /(\S+)\s/) { # mit Regex alles bis zum Leerzeichen bei Feld 4 einfangen
$felder[12] = $1; # gefangenes Feld 13 zuweisen
$felder[10] = 200088; # Feld 11 Wert setzen
}

$line = join '|',@felder; # Zeile wieder zusammenbauen

print $out_fh $line, "\x0D"; # geänderte Zeichenkette speichern
}

}
else {
die "Kann Datei '$in_filename.out' nicht öffnen/schreiben!";
}
}
else {
die "Kann Datei '$in_filename' nicht öffnen!";
}


Editiert von GwenDragon: neuer Code, Kommentare
Last edited: 2019-08-05 10:35:43 +0200 (CEST)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread If - Then - Ersetze Syntax