Thread Transfer zwischen zwei dateien (7 answers)
Opened by Gast at 2004-02-15 16:53

pq
 2004-02-15 17:23
#1230 #1230
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Guest,15.02.2004, 15:53]Hallo habe folgendes Problem:

ich öffne eine Datei
ersetze die Umlaute und schreibe dann in eine 2. Datei aber es klappt nicht:

[CODopen (IN, "<daten.xml");[/quote]
setze bitte das nächste mal richtige code-tags.
warum überprüfst du nicht, ob das open geklappt hat?
open IN, '<', 'daten.xml' or die "Konnte daten.xml nicht öffnen, weil: $!";
Quote
@file_lines = <IN>;

bitte alle variablen deklarieren!
my @file_lines = <IN>;
Quote
open (OUT, ">daten2.xml") || die "cannot open file";

auch hier empfiehlt es sich, perl nach dem grund zu fragen, ausserdem
ist ein 'or' idiomatischer als ||:
open OUT, '>','daten2.xml' or die "cannot open file: $!";
Quote
while (@file_lines)
{

das heisst übersetzt: 'solange das array @file_lines nicht leer ist'.
aber du tust ja gar nichts mit dem array. warum sollte es also jemals leer
sein? das programm läuft endlos weiter, wir haben es also hier mit einem
klassischen exemplar einer endlos-schleife zu tun.
foreach my $file_line (@file_lines) {
Quote
$file_line=~s/ü/&uuml\;/g;
$file_line=~s/ö/&ouml\;/g;
$file_line=~s/ä/&auml\;/g;

wieso ersetzt du umlaute, aber kein ß? wiedermal ein klassisches beispiel,
warum man HTML::Entities benutzen sollte, damit man keine zeichen vergisst:
encode_entities($file_line);
Quote
print OUT  "$file_line";

warum schreibst du die variable in anführungszeichen?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Transfer zwischen zwei dateien