perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 27
Click for quality!




11.02.2012 / 12:06

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragTextdatei richtig in textarea darstellen u. dieses dann speichern
Seitenanfang
Hallo

Ich 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

BeitragNachtrag
Seitenanfang
Hallo nocheinmal

also in der Textdatei sind keine Leerzeichen bzw Tab vor dem eigentlichen Text:
abc,def,0
und in der textarea schon:
'Leerzeichen bzw. Tab'abc,def,0

Gruß,
Dominik

Datum: 01.05.2007-11:56

BeitragProblem gelöst, aber...
Seitenanfang
hello

hab vergessen, die Tabulatoren zu löschen

 $klassen [$i] =~ s/\t//g; 

aber mich würde trotzdem interessieren, warum im textarea tabulatoren eingefügt werden, obwohl in der txt keine vorhanden sind!?

Gruß,
Dominik

Datum: 01.05.2007-14:43

Beitragre: Textdatei richtig in textarea darstellen u. dieses dann speichern
Seitenanfang
Hallo Dom

Mal eine erste Frage,

hast du deinen Code im Original eingerückt?
Also

..print <<END
..$klassen[$i]
..END

In diesem Fall bekämst du durch das HERE-Dokument die Leerzeichen vor $klassen[$i] mit in deine Ausgabe des Textfeldes.
Gleiches gilt auch für Leerzeilen, nachfolgende Leerzeichen im Bereich des HERE-Dokuments

Gruß Franks

Datum: 01.05.2007-14:50

Beitragre: Textdatei richtig in textarea darstellen u. dieses dann speichern
Seitenanfang
Hallo Frankes,

Danke für den tollen Tipp!
printe

 print "..."; 
jetzt die einzelnen Zeilen normal hinein und es werden nun keine unnötigen Tabulatoren eingefügt!

Gruß,
Dominik

Datum: 02.05.2007-09:21

-






-
-