Thread Zeilen auffüllen bis feste Länge (9 answers)
Opened by leo11 at 2008-11-14 19:49

leo11
 2008-11-15 19:35
#116294 #116294
User since
2008-08-14
250 Artikel
BenutzerIn
[default_avatar]
Ich muss nochmal nachhaken.

Das erste Ergebnis war wie folgt:
xxxxxqweqwe qwewe
xxxxxxxxxxxx332 234

D.h. das X wurde am Zeilenbeginn eingefügt. Ursache scheinen hier die Zeilenumbrüche zu sein. Mein Editor zeigt mir Windowsumbrüche an. Nach einigen Experimenten mit chomp und $/ führte nur folgendes zum gewünschten Ergebnis

Code (perl): (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl -wlni
s/\n//;
$/="\r"; 
chomp; 
if (length($_)>1) {
    print substr($_."X" x 100, 0, 100)
}


Leider aber nur beim ersten Durchgang. Führe ich das Skript nochmal aus löscht es komplette Zeilen.Ich hab auch mal folgendes probiert:
Code (perl): (dl )
1
2
3
4
5
6
#!/usr/bin/perl -wln
$/="\r"; 
chomp; 
if (length($_)>1) {
    print substr($_."X" x 100, 0, 100)
}

Ergebnis: Die erste Zeile ist ok, dann kommt direkt die 2te. Sie ist auch ok, allerdings kommt dann eine Leerzeile. Alle darauf folgenden Zeilen sind auch ok, allerdings folgt immer eine Leerzeile.

Dann hab ich weiter getestet:
Code (perl): (dl )
1
2
3
4
5
6
#!/usr/bin/perl -wln
$/="\r\n"; 
chomp; 
if (length($_)>1) {
    print substr($_."X" x 100, 0, 100)
}

Ergebnis: Die erste Zeile wird direkt mit Hexcode 0d beendet, dann folgen die X, dann die restlichen Zeilen. Sie sind ok. Bsp.:
www e rere
xxxxxxxxxxxxx
3q3e rxxxxxxxxxxxxxxxxx
df dfe e343xxxxxxxxxxxxx
Der Hexcode Editor zeigt an, dass in der ersten Zeile noch 0d als Umbruch steht, während alle anderen 0a haben.

Vor dem Skript zeigt der Hexeditor überall als Zeilenende 0d0a an.
Mir ist nicht klar, wie ich das behebe.


(Nachträglich editiert)

View full thread Zeilen auffüllen bis feste Länge