HalloIch habe folgendes Problem: Ich lese mit folgendem Code eine Textdatei aus und schreibe nach Veränderungen durch einen User diese wieder in die Textdatei.
1.
#Schreiben in das Textfeld
<form action="$thisaction" method="post">
<textarea cols="50" rows="10" name="sources" >for (my $i=0; $i<=scalar(@klassen); $i++) {
if ($klassen[$i] ne "") {
print <<END;
$klassen[$i]
END
print <<END;
</textarea> <hr><br>
<input type="submit" value="Absenden">
</form>
END
? Jedoch wird es nicht korrekt ausgegeben, weil in dem Textarea werden immer Leerzeichen vor den wirklichen Text angezeigt; obwohl der Text in der Datei keine Leerzeichen beinhaltet.
Also so auschaut (in der txt):
abc,def,0
und im textarea wird dies folgend dargestellt:
abc,def,0
Wie kann ich dies beheben?
2.
Dieses Textfeld wird anschließend mit folgendem Code in eine Textdatei gespeichert:
read(STDIN,$eingabe,$ENV{"CONTENT_LENGTH"});
if ( $eingabe ) {
($eingabevar,$eingabetext)=split (/=/,$eingabe);
$eingabetext=~ tr/+/ /;
$eingabetext=~ s/%([0-9A-F]{2})/pack(C,hex($1))/ieg;
$eingabetext =~ s/(\r\n)/\n/g;
if ($eingabetext ne "") {
open (SCHREIBEN, "> $datei") or die ("$!");
print SCHREIBEN "$eingabetext";
close SCHREIBEN or die ("$!");
}
}
Es werden aber die Leerzeichen immer mit gespeichert, das nicht gut für die weitere Verarbeitung ist.
Ich kann in einem anderen Programm nämlich nicht, obwohl die split Funktion die Zeilen richtig ausgibt, die "gesplitteten" Teile mit einer Variable per "eq" vergleichen - wenn ich "==" einsetze wird nicht mehr richtig verglichen.
Habt ihr Perl-Profis Lösungsvorschläge?
Bin für jeden Rat dankbar.
Gruß,
Dominik
Datum: 01.05.2007-11:31
