Zeilenumbrüche entfernen
Florian Auer
- perl
0 klaus0 Florian Auer0 klaus0 Florian Auer0 klaus
Hi Leute,
ich weiß, dass dieses Thema schon einmal besprochen wurde. Laut Archiv am 29.04.2000. Leider fand ich dort nur die halbe Lösung für mein Problem.
Man entfernt Zeilenumbrüche normalerweise mit "$string =~ s/\n//g;" aus einem String. Nun gut, da bin ich jetzt genauso weit wie vorher. Das wusste ich nämlich schon.
Was ich allerdings bis jetzt noch nicht begreife, ist, warum dieses "$string =~ s/\n//g;" alle Zeichen aus meinem String entfernt. Soll heißen, der String ist nach Bearbeitung LEER :(
Wäre super, wenn mir einer helfen könnte. Ich häng' da jetzt schon fast drei Stunden mit dem Sche*ß rum und weiß immer noch nicht, warum's nicht rennt.
Grüße,
Florian Auer
Hallo Florian,
Was ich allerdings bis jetzt noch nicht begreife, ist, warum dieses "$string =~ s/\n//g;" alle Zeichen aus meinem String entfernt. Soll heißen, der String ist nach Bearbeitung LEER :(
Da gibt's nur zwei Gründe dafür:
1.) der String war vorher schon leer.
2.) der String bestand nur aus Zeilenumbrüchen.
oder es passt etwas an der syntax nicht.
Grüße
Klaus
Hallo Klaus,
beides ist nicht der Fall. Ich habe mir den String, bevor ich ihm die Zeilenumbrüche wegnehmen wollte, ausgeben lassen - korrekt. Auch wenn's nicht viel geholfen hat - Danke! :)
Grüße,
Florian Auer
Hallo Florian,
Kann ich mal den Code sehen?
Klaus
Aber natürlich :)
--------------- 8X ----------------
open (DATA, "<liga.dat") die "Ein Fehler ist aufgetreten beim Öffnen der Datei liga.dat";
while (<DATA>)
{
print $_; ### Hier wird der Inhalt ausgegeben
$_ =~ s/\n//g; ### Da sollen die Zeilenumbrüch entfernt werden (Unix)
push (@Daten, $_); ### Das Array ist leer
print @Daten; ### Folgerichtig wird auch nix ausgegeben
}
close (DATA);
--------------- 8X ----------------
Ich hoffe, ich habe nicht zu schlampig gearbeitet ;)
Nochmal danke,
Florian Auer
Hi Florian,
also, ich hab's gerade ausprobiert, es funktioniert ohne modifikationen bei mir.
Im aktuellen Falle würde ich aber trotzdem schreiben:
--------------- 8X ----------------
#!/usr/bin/perl
open (DATA, "<x.pl") die "Ein Fehler ist aufgetreten beim Öffnen der Datei liga.dat";
while (<DATA>) # liest Zeilenweise aus <DATA>, nicht vergessen
{
chomp; # entfernt Zeilenumbrüche am ende des Strings $_.
push @Daten, $_; # ab auf's Array
}
close (DATA);
print @Daten; # Array so wie es ist ausgeben
--------------- 8X ----------------
Grüße
Klaus
Nochmal hi,
entweder bin ich zu dumm oder es geht wirklich nicht ... :(
Mit chomp geht's auch nicht :(
Grüße,
(ein verzweifelter) Florian Auer
Das kommt davon, wenn man nichr richtig denkt. Die Ausgabe des Arrays erfolgt bei mir nur dann, wenn in einer if-schleife, wo der Befehl zur Ausgabe des Arrays ein "true" ist. Da ich in die Abfrage allerdings hinten ein \n angehängt hatte, könnte es gar nicht funktionieren. Jetzt rennt's!
Nochmals danke für deine Hilfe, Klaus!
Grüße,
Florian Auer