Avatar billede stargate Nybegynder
24. maj 2004 - 10:56 Der er 13 kommentarer og
1 løsning

Linieskift i TEXTAREA

Jeg har et textarea på min side.

Indholdet af dette felt bliver gemt i en oracle DB, i et varchar felt.

Dette bliver senere hentet ud til et word-dok.
Når det vises i word, er der ingen linieskift.

Hvad skal man gøre for at bevare disse ?
Avatar billede fet321 Nybegynder
24. maj 2004 - 10:59 #1
Udkift
\n
med
^p
Avatar billede stargate Nybegynder
24. maj 2004 - 11:41 #2
Tja, der er ingen "\n".
Indholdet bliver overført til en .jsp således:
  &_forudsaetning=Se+bilag%0D%0Alinie2%0D%0Alinie3
hvor "%0D%0A" åbenbart står for et linieskift.
hvis jeg skifter dem ud med "^p", kommer der bare til at stå :
  Se bilag^plinie2^plinie3
i Word...
Avatar billede ldanielsen Nybegynder
24. maj 2004 - 11:55 #3
Brug method=POST i formen der sende til din jsp fil
Avatar billede stargate Nybegynder
24. maj 2004 - 12:20 #4
Jeg bruger POST.
satte den bare lige til GET, for at se URL'en...
Avatar billede ldanielsen Nybegynder
24. maj 2004 - 12:51 #5
hvis du bruger POST, kommer der så også til at stå %0D%0A i databasen i stedet for linieskift?

og hvordan overfører du teksten til Word?
Avatar billede stargate Nybegynder
24. maj 2004 - 15:07 #6
Nej, i DB optræder linieskift som mellemrum...

En servlet henter data fra DB, og giver dem til et 3. parts produkt (WordWriter)
Avatar billede olebole Juniormester
24. maj 2004 - 15:34 #7
<ole>

Er du 100% sikker på, der ikke er \n og/eller \r? Det er der normalt altid, når man indsætter fra textarea til DB.

Prøv, når du henter ud, at skrive:

s = s.replace(/\n/, "SKIFT");
s = s.replace(/\r/, "SKIFT");
alert(s);

Hvor s er strengen, der indeholder data fra DB'en.

/mvh
</bole>
Avatar billede olebole Juniormester
24. maj 2004 - 15:35 #8
... og det bør vel være:

s = s.replace(/\n/g, "SKIFT");
s = s.replace(/\r/g, "SKIFT");
alert(s);
Avatar billede ldanielsen Nybegynder
25. maj 2004 - 19:42 #9
Jeg ville undersøge hvad linieskiftet i virkeligheden består af, EFTER det er hentet ud af databasen.

Hvilket sprog tilgår du den servlet med?

Et linieskift kan være et eller to tegn, Line feed og Carriage return, eller blot Line feed.
Avatar billede stargate Nybegynder
01. juni 2004 - 13:26 #10
Med dine replace, får jeg en "SKIFT" for hvert tegn

Men, det kommer åbenbart an på hvordan jeg viser / bruger teksten...
(og det virker lidt mystisk)

Jeg læser fra DB med JSP, og lægger værdien ind i en String s.
Skriver jeg denne ud i html med <%= s %> vises linieskift IKKE, de bliver erstattet med char '20'.

Lægger jeg derimod værdien ind i et textarea, vises linieskift korrekt, altså  som '0A''0D', og mellemrum som '20'.

Når jeg lægger værdien ind i et "hidden" form-felt, og kalder en servlet, bliver mellemrum overført som '%20', mens linieskift helt bliver fjernet.

Problemet er, at jeg ikke kan substituere når jeg gemmer i DB, da data skal læses ind i et textarea og vises igen.
Avatar billede olebole Juniormester
03. juni 2004 - 17:41 #11
Ja, så er dit linieskift et standard Win-liniskift (\n\r eller vbCrLf i VB).
Du skal endelig ikke skifte ud, når du lægger i DB'en, men derimod når du skriver ud igen ... det er sådan, man plejer at gøre  :)
Når du sender i et hidden field og mellemrum bliver skiftet til '%20', må det være fordi, det bliver posted som 'application/x-www-form-urlencoded'.
/mvh
Avatar billede stargate Nybegynder
09. juni 2004 - 14:44 #12
Tak, jeg har fået noget at komme videre med...

olebole, læg et svar...
Avatar billede stargate Nybegynder
09. juni 2004 - 15:45 #13
Og løsningan var at lave en funktion, der erstatter alle char(13) og char(10) med
%0D og %0A.
Og i kaldet af servlet'en: ...&forudsaet=<%= replaceCRLF(_forudsaet) %>
Avatar billede stargate Nybegynder
13. juni 2008 - 16:50 #14
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester