Schrift
[thread]7611[/thread]

new lines werden nicht erkannt: new lines von windows unter os x



<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Gast Gast
 2006-01-12 00:41
#61704 #61704
hi,

ich versuche eine datei die ich von einem windoof rechner bekommen hab mit while ($line = <IN1>) unter os x einzulesen. leider findet perl die newlines nicht und liest den ganzen text auf einmal ein.
ich hab auch schon text rauskopiert und in eine andere datei eingefügt, aber das bringt auch nichts. momentan ist das ganze in macos latin1 gespeichert.
weiss jemand was ich da machen kann?

danke schonmal im voraus,

michel
renee
 2006-01-12 00:55
#61705 #61705
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es gibt mehrere Wege...

Weg 1: $/ aendern:
Code: (dl )
1
2
3
4
5
6
7
my @lines;
{
local $/ = "\r\n";
open(my $fh,"<$file") or die $!;
my @lines = <$fh>;
close $fh;
}

zu $/ siehe Wiki:perldoc perlvar

Weg 2: "Uebersetze" die Zeilenenden in Dein aktuelles Zeilenende vom System mit CPAN:File::LocalizeNewlines

Weg 3: Mache es selbst mit einem Regulaeren Ausdruck...

...
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/
picknicker187
 2006-01-12 01:42
#61706 #61706
User since
2006-01-12
6 Artikel
BenutzerIn
[default_avatar]
ok, danke für den hinweis. ich würde gerne den weg mit dem localize modul nehmen. nur wie installiere ich das unter os x?
renee
 2006-01-12 01:50
#61707 #61707
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hier findest Du eine Wiki:Anleitung...
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/
picknicker187
 2006-01-12 02:24
#61708 #61708
User since
2006-01-12
6 Artikel
BenutzerIn
[default_avatar]
oh mann, dieses scheiss cpan funktioniert einfach nicht. es meckert weil ein paket nicht installiert ist, will man das dann installieren beklagt es sich, dass ein anderes nicht da ist.....ich hab gerade überhaupt garkeine zeit für sowas. ich will einfach nur möglichst schnell und einfach die new lines ändern. gibt es da nicht eine einfache standart-codezeile die man verwenden kann oder sowas????

wie ist das denn mit dem $/ ändern was du meinstest. was bringt denn das, wenn man es zu /r/n ändert? das ging bei mir auch nicht.

ich dreh noch durch....alles nur wegen diesem scheiss windows
renee
 2006-01-12 02:32
#61709 #61709
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
nicht /r/n sondern \r\n! (Backslash anstatt Slash)...\n\n

<!--EDIT|renee|1137026030-->
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/
renee
 2006-01-12 02:34
#61710 #61710
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zur Not kann man in vielen Editoren die Datei oeffnen und dann den Zeilentrenner automatisch ändern...
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/
Ronnie
 2006-01-12 07:13
#61711 #61711
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Ja, ich kann renee nur zustimmen. Nimm Textmate, oder Textwrangler oder sonst irgendeinen vernünftigen Editor und das Thema ist erledigt.
murphy
 2006-01-12 10:35
#61712 #61712
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Zeilenenden unter MacOS X anzupassen ist kein Problem. Das kann zum Beispiel der mitgelieferte Emacs ohne Probleme:

- Terminal öffnen

- "emacs windoof_datei <return>" eingeben

- <ctrl>-x <return> f u n i x <return> eintippen

- <ctrl>-x <ctrl>-s eintippen

- <ctrl>-x <ctrl>-c eintippen

und schon ist die Datei mit Unix Zeilenenden gespeichert.
When C++ is your hammer, every problem looks like your thumb.
murphy
 2006-01-12 10:45
#61713 #61713
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Natürlich geht es auch mit Perl (ungetestet)

Code (perl): (dl )
1
2
3
4
5
6
use strict;
use warnings;

$/ = "\x0d\x0a";
$\ = "\x0a";
while (<>) { chomp; print; }
When C++ is your hammer, every problem looks like your thumb.
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2006-01-12 00:41.