Schrift
[thread]368[/thread]

Zeilenumbr. bei auslesen und schreiben von TextAre



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
oruebe
 2004-08-24 21:46
#3562 #3562
User since
2004-07-09
46 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe mal wieder ein Problem:

Ich habe ein TextArea, in das man HTML eingeben kann. Nach dem Absenden des Formulares soll der Inhalt ausgelesen und dann Zeile für Zeile wieder an den Browser übergeben werden.

Ich mache das wie folgt:
@ZEILEN = split(/\n/, $FORMDATA{TextArea});
foreach $ZEILE(@ZEILEN){
... bearbeite diese Zeile...;
print $ZEILE."\n";
}

So... das geht zwar, aber wenn ich mir den Quelltext ansehe, dann steht es beim IE alles in einer Zeile und bei Netscape ist es ok.
Warum macht der IE das nicht Zeile für Zeile?
Wenn ich hinter print $Zeile... noch ein zweites "\n" mache ist es beim IE das selbe wie vorher und Netscape macht dann immer noch eine Leerzeile, was ich als logisch empfinde.

Wo mache ich den Fehler?

Tausend Dank schon mal!!!

Oliver
Taulmarill
 2004-08-24 22:28
#3563 #3563
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
der IE wird die Unix Zeilenumbrüche nicht korrekt anzeigen.
versuch mal "\r\n" oder wars "\n\r" ??? auf jeden fall eins von beiden...
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Relais
 2004-08-24 23:16
#3564 #3564
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Vielleicht hilft

/\015?\012/

"\015" ist CR, das ist vermutlich vorhanden, falls nicht sorgt das "?" dafür, daß das nicht schadet.
"\012" ist LF, das muß dagegen vorhanden sein.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
oruebe
 2004-08-24 23:53
#3565 #3565
User since
2004-07-09
46 Artikel
BenutzerIn
[default_avatar]
Also ich habe inzwischen herausgefunden, dass das TextArea nicht in die einzelnen Zeilen zerlegt wird.
Es liegt also nicht daran, dass der IE mit "\n" nichts anfangen kann. Er macht es aber dann NACH dem gesammten Inhalt der TextArea, weil diese nicht in die Einzelteile zerlegt wird.

Aber wie mache ich das?

Ein split nach "\n" tuts nicht.
oruebe
 2004-08-24 23:59
#3566 #3566
User since
2004-07-09
46 Artikel
BenutzerIn
[default_avatar]
@ Relais

Wie denn das? split /\015?\012/ ???
Oder nur eins von beiden?

Hier fehlt mir gerade total die Idee wie ich das einsetzen soll.
format_c
 2004-08-25 00:14
#3567 #3567
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
for my $zeile (split /\015?\012/, $FORMDATA{TextArea}) {
# Mach was mit $zeile
print $zeile;
}


Gruß Alex
oruebe
 2004-08-25 11:17
#3568 #3568
User since
2004-07-09
46 Artikel
BenutzerIn
[default_avatar]
Hallo Alex,

erstmal vielen Dank für Eure Mühe.

Leider ist es genau das selbe.

Auch \r\n oder andersrum tuts nicht.

Hat da noch jemand eine Idee...?
renee
 2004-08-25 11:25
#3569 #3569
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du musst auch beim Ausgeben den Windows-Zeilenumbruch benutzen:
Code: (dl )
1
2
3
4
5
my @lines = split(/\015?\012/, $FORMDATA{TextArea});
foreach my $line(@lines){
#... bearbeite diese Zeile...;
print $line."\r\n";
}
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/
Relais
 2004-08-25 11:50
#3570 #3570
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=renee,25.08.2004, 09:25]Du musst auch beim Ausgeben den Windows-Zeilenumbruch benutzen:[/quote]
Klingt wiederum sehr komprimierbar:

Code: (dl )
1
2
( my $temp = $FORMDATA{TextArea} ) =~ s/\015?\012/\015\012/g; # CR+LF!
print $cgi->textarea( 'data', $temp, $rows, $cols );
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
oruebe
 2004-08-25 16:31
#3571 #3571
User since
2004-07-09
46 Artikel
BenutzerIn
[default_avatar]
die AUSGABE ist nicht das Problem.

Wenn ich nach "jeder Zeile" irgendetwas einfügen lassen möchte (egal ob Umbruch oder einen Text oder sonstwas), erscheint es nur einmal ganz am ende des gesammten TextArea-Inhalts. Ancheinend wird also das TextArea gar nicht erst in Zeilen zerlegt. Hierfür spricht auch, dass das bearbeiten "jeder einzellnen Zeile" nur ein einziges mal geschieht, weil es eben nicht mehrere einzelne Zeilen sind sondern nur EINE EINZIGE... denke ich.
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2004-08-24 21:46.