Leerzeichen ???
Holger
- cgi
Hallo zusammen,
Habe mir da ein kleines Script gebastelt,
das eine txt-bank einliest und Ausgibt.
Im script wird sie so geöffnet:
.
.
open(DOWN,"<test.txt");
@link = <DOWN>;
close(DOWN);
.
.
foreach $EINTRAG(@link) {
$EINTRAG=~s/\n//g;
$EINTRAG=~s/\r//g;
$EINTRAG=~s/ //g;
($link,$title,$bemerkung,$test) = split(//,$EINTRAG);
.
.
.
Nur, jetzt mein Problem es werden die Leerzeichen nicht Augsgegeben.
Die txt-Datei sie so aus:
link 1title 1anregung kritiktest 1
link 2title 2anregung kritiktest 2
link 3ti..... etc.
und die Ausgabe dann so:
link1 title1 anregungkritik test1
etc...
Wie kann ich die Leerzeichen mit auslesen ?
Mit /[\s]/ habe ich schon ausprobiert, Funktioniert auch nicht.
Viele Dank
Holger
Moin,
foreach $EINTRAG(@link) {
$EINTRAG=~s/\n//g;
$EINTRAG=~s/\r//g;
$EINTRAG=~s/ //g;
^hier nimmst Du das Leerzeichen selbst raus ;-)
...kein Wunder dass die dann wech sind. Nochn Tipp: Zeilenendezeichen kannst Du mit chomp() entfernen und beim Öffnen eines Filehandlers _immer_ den Fehlerstatus abfragen:
open FH, "$file" or die $!;
Viele Grüße, Rolf
Danke für die schnelle Hilfe,
jetzt schreibt aber das andere Script, welches eben diese
txt-Datei erstellt als erstes Zeichen ein Leerzeichen.
link 1title 1anregung kritiktest 1
link 2title 2...
link 3...
Dann Funtkionieren meine Links nicht mehr.
Hier das Script:
foreach $EINTRAG(@test) {
$EINTRAG=~s/\n//g;
$EINTRAG=~s/\r//g;
($link,$title,$bemerkung,$test) = split(//,$EINTRAG);
.
.
.
}
push (@neu_liste,"$link$titlebemerkung$test\n");
}
.
.
open(TEST, ">test.txt");
print TEST"@neue_liste";
close(TEST);
Danke
Holger
Moin,
wenn ichs richtig schnalle muss also nur das Leerzeichen am Anfang raus? Geht so:
$EINTRAG=~s/^ //g;
Viele Grüße, Rolf
Das Problem von vorher ist OK !!!
Jetzt ist das Problem,(Beim Schreiben der txt-Datei)
Das Script (unten) fügt immer vorne ein Leerzeichen in die txt ein.
Das Problem daran, der link 1 ist die URL des Title 1.
und das Leerzeichen ist halt den da drinnen, und die
Seite kann dann nicht gefunden werden.
.
.
link 1title 1anregung kritiktest 1
link 2title 2...
link 3...
^hier kommt das Leerzeichen ;-(
Dann Funtkionieren meine Links nicht mehr.
Hier das Script:
foreach $EINTRAG(@test) {
$EINTRAG=~s/\n//g;
$EINTRAG=~s/\r//g;
($link,$title,$bemerkung,$test) = split(//,$EINTRAG);
.
.
.
}
push (@neu_liste,"$link$titlebemerkung$test\n");
}
.
.
open(TEST, ">test.txt");
print TEST"@neue_liste";
close(TEST);
Danke
Holger
Hallo da bin ich wieder !
Problem gelöst.
Das Posting von Andreas Bierhals, hat beim zwiten Problem
geholfen. Danke euch Beiden.
Chio,
Holger
Moin,
Danke für die schnelle Hilfe,
jetzt schreibt aber das andere Script, welches eben diese
txt-Datei erstellt als erstes Zeichen ein Leerzeichen.link 1title 1anregung kritiktest 1
»» link 2title 2...
»» link 3...
Dann Funtkionieren meine Links nicht mehr.
was Du suchst, ist folgender Ausdruck:
$EINTRAG =~ s/^ +//;
Das '+' bedeutet, daß beliebig viele gleichartige Zeichen unmittelbar
folgen dürfen. Das '^' am Anfang bedeutet, daß das/die Leerzeichen
am Anfang des Suchausdruckes stehen muß/müssen. Da man nur
einmal Leerzeichen entfernen will, kann man das 'g' am Ende weglassen
(muß aber nicht). Das ganze findet sich ausführlichst auch auf
<../../tgcg.htm>.
Bis dannundwann
Andreas