Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7135[/thread]

Zeilenumbrüche wollen nicht weg



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
stb2050
 2005-07-13 20:23
#56401 #56401
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi Ihr,

habe nach einem Server-Umzug ein merkwürdiges Problem mit Zeilenumbrüchen.

Habe nach dem Dateieneinlesen bis jetzt immer mit Chomp entfernt, was auch immer geklappt hat:

Code: (dl )
1
2
3
open(FILE, "../userdaten/main/$username.dat");
chomp(@userdata = <FILE>);
close(FILE);


Merkwürdigerweise wollen die Zeilenumbrüche aber plötzlich nicht mehr weichen.

Hat jemand eine Idee? Vielleicht liegt es an der Server-Config? Hier die Config: http://www.netwizz.de/testphp.php

Bin für jeden Tipp dankbar.

Liebe Grüße,
Steffen
esskar
 2005-07-13 20:37
#56402 #56402
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
versuch mal

Code: (dl )
@userdata = map { s!\r?\n$!! } <FILE>;
\n\n

<!--EDIT|esskar|1121272661-->
J-jayz-Z
 2005-07-13 21:43
#56403 #56403
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du könntest auch noch chop versuchen.
Verwendet man genauso, wie chomp. Nur chop schneidet einfach das letzte Zeichen ab. Chomp macht das nur, wenns ein Zeilenumbruch ist...
Aber chomp müsste eigentlich auch \r abschneiden, oder?
Nochwas @ stb2050: Mit einer öffentlichen phpinfo wäre ich vorsichtig. Die verrät einiges über dein system...
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Gast Gast
 2005-07-14 01:45
#56404 #56404
Benutzen beide Server dieselben Zeichenfolgen für Zeilenumbruch,
z.B. \n oder \r\n oder verschiedene?
J-jayz-Z
 2005-07-14 01:54
#56405 #56405
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Na ja, chop schneidet das letzte Zeichen auf jeden Fall ab, chomp macht \r und \n und das snippet von esskar berücksichtigt auch \r und \n. Also ich denke nicht, das es daran noch liegen könnte...
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
renee
 2005-07-14 01:57
#56406 #56406
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
chomp schneidet $/ ab. Also muss man vielleicht $/ erst auf die Zeilenumbrüche der Datei ändern oder esskars Snippet nehmen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2005-07-14 02:53
#56407 #56407
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
was war es vorher für ein system? wie kommt die .dat-datei zustande,
d.h. welche daten (woher) schreibst du rein?
zeig uns eine zeile, entweder hex-editor oder
print join ",", ord($_), split //, $line;
und was steht in $/? (evtl. selbes verfahren)\n\n

<!--EDIT|pq|1121295266-->
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
stb2050
 2005-07-14 13:31
#56408 #56408
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi Ihr,

@esskar: Bei deinem Code steht in jeder Zeile des Arrays dann nur "1".

@alle: Mit "chop" klappt es ebensfalls nicht. Schreibe ich allerdings 2x den Befehl chop, so klappt es. Eventuell müssen die letzten 2 Zeichen abgeschnitten werden?

Vorher war es ein Suse Linux 9.x mit Apache2, also ich denke keine so großen Unterschiede.

Die Daten werden mit einem simplen Perl-Script in die Datei geschrieben. Merkwürdig ist, dass es bei neuangelegten Dateien klappt. Nur bei denen, die vom alten Server übertragen wurden, komischerweise nicht.

Liebe Grüße,
Steffen
lichtkind
 2005-07-14 13:35
#56409 #56409
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
öffne doch mal so ne alte datei per hand(zb mit scite oder Proton-ce) und schau welche eol zeichen da wirklich drin sind und passe dann esskars lösung an und jag sie über alle alten dateien.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
stb2050
 2005-07-14 14:03
#56410 #56410
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
[quote=lichtkind,14.07.2005, 11:35]öffne doch mal so ne alte datei per hand(zb mit scite oder Proton-ce) und schau welche eol zeichen da wirklich drin sind und passe dann esskars lösung an und jag sie über alle alten dateien.[/quote]
Hi,

danke für den Tipp, habe PCE mal gedownloaded. ES sind tatsächlich 2 Umbrüche vorhanden.

Aber wie sehe ich nun, welche Art von Umbrüchen das sind bzw. wie mache ich das sichtbar?

LG,
Steffen
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2005-07-13 20:23.