Avatar billede jarimark Nybegynder
04. oktober 2001 - 10:53 Der er 33 kommentarer og
1 løsning

Læsning af de første 200 tegn...

Jeg har et lille problem. Jeg vil hente en tekst i en database og derefter sørge for at kun de første 200 tegn bliver vist på en side. Er der nogen der har et forslag til hvordan jeg kan læse de første 200 tegn ud af en variabel?
Avatar billede olebole Juniormester
04. oktober 2001 - 10:54 #1
<ole>

var nyVariabel = variabel.substring(200);

/mvh
</bole>
Avatar billede olebole Juniormester
04. oktober 2001 - 10:55 #2
Undskyld....:

var nyVariabel = variabel.substring(0, 200);
Avatar billede olebole Juniormester
04. oktober 2001 - 10:59 #3
Funktionen tager to parametre:
  variabel.substring(start, end);
...hvis kun en parameter er sat, opfattes det som \'start\' - og \'end\' er så slutningen af \'variabel\'.
Derfor ville mit første forslag altså returnere alt fra tegn nummer 200 og til slutningen af strengen \'variabel\'.....comprende?  :)
/mvh
Avatar billede jarimark Nybegynder
04. oktober 2001 - 11:03 #4
Ja, det kan jeg se. Men mit problem er at jeg henter teksten fra en database ved hjælp af
<%(((Recordset1_data = Recordset1.getObject(\"text\"))==null || Recordset1.wasNull())?\"\":Recordset1_data)%>

Hvordan får jeg det ind som vaiablen, og derefter vist den på siden?
Avatar billede olebole Juniormester
04. oktober 2001 - 11:05 #5
aaaaaddddddddd.......det er jo VBS/ASP - det har jeg lovet min psykolog og min mor, jeg aldrig grisser mine små liljehvide fumlevorter til med  :)
Det må du spørge en anden om......
/mvh
Avatar billede jarimark Nybegynder
04. oktober 2001 - 11:07 #6
Det er nu jsp, men okay :) Tak alligevel
Avatar billede jakobandersen Nybegynder
04. oktober 2001 - 11:16 #7
Hvilken database er det? Du kan gøre det direkte i SQLen..

Se f.eks. her: http://www.sqlteam.com/item.asp?ItemID=2478
Avatar billede nute Nybegynder
04. oktober 2001 - 11:17 #8
jarimark >> det vil stadig (nesten) fungere. siden JavaScript er \"lillebroren\" til Java, og JSP er scriptspråket til Java, så har de *masse* til felles. \'substring\' er en metode i String klassen i Java, så olebolde var ikke så langt unna svaret:

<%
(Recordset1_data = Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\" : Recordset1_data
out.println( Recordset1_data.substring( 0, 200 );
%>
http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html#substring(int)

/nute

Avatar billede olebole Juniormester
04. oktober 2001 - 11:26 #9
nute >> Pas nu på, ikke at bidrage til forvirringen (trods dine gåseøjne......altså ikke dine egne, men dem du skrev...hehe!).
Java og JavaScript har intet med hinanden at gøre, selvom syntaksen kan virke beslægtet. Java er fra Sun og JavaScript fra Netscape. Oven i købet hed JavaScript \'LiveScript\' helt op til release-dagen, men de valgte desværre at kalde det JavaScript, selvom det ikke har noget med Java at gøre  ;)

jarimark >> Ak, ja....hvad har bønder forstand på? Jeg må se at få checket Java og JSP bedre ud  ;o)
/mvh

Avatar billede jarimark Nybegynder
04. oktober 2001 - 11:28 #10
Jeg kan nu heller ikke få det helt til at virke....
Moonduck, det er MySQL database...
Avatar billede nute Nybegynder
04. oktober 2001 - 11:31 #11
olebole >> yup....I know...og det var derfor jeg benyttet de mer eller mindre misbrukte gåseøyne. Og for å skape litt klarhet i *min* oppfatning av sakene, så kan jeg bare referere til en ikke-publisert tutorial:

\"JavaScript er, som navnet tilsier, et scriptspråk og ikke et programmeringspråk. Forskjellen på disse kan forklares kort med at et scriptspråk kun fortolkes under eksekvering, mens et programmeringssråk er nødt til å oversettes til maskinkode (kompileres) før eksekvering. Det ble oppfunnet av NetScape og het dengang LiveScript. Sent i 1995 lanserte Sun et fullverdig programmeringsspråk som fikk navnet Java. Dette ble nærmest en storebror til LiveScript, som skiftet navn til JavaScript.

Selv om JavaScript har \"arvet\" mye av syntaxen til Java, er det ikke i slekt med språket. JavaScript har fulgt i sin storebror sine fotspor på den måte at det låner det meste av Java\'s syntax. De er fundamentalt forkjellige og benyttes til helt ulike formål. Man kan si at de komplementerer hverandre istedenfor å konkurrere med hverandre. Sun og Netscape annonserte i 1995, da Java ble lansert, at Sun ville supportere JavaScript som en Java-basert, åpen scripting standard på Internet. Dette er grunnen til at JavaScript og Java minner så mye om hverandre.\"

Ofte er gåseøyne et dårlig substitutt for dårlig evne til å kommunisere eller et dårlig ordforråd, men noen ganger er man bare *nødt* til å benytte det for at andre skal forstå en simpel analogi

/nute
Avatar billede nute Nybegynder
04. oktober 2001 - 11:35 #12
jarimark >> for å så sette deg på rett kurs, sånn at du kan debugge selv (det er utrolig vanskelig for oss her inne å utføre noen form for debug når det handler om ulike språk i kombinasjon med en database. Kjør dette og se om ikke det fungerer for deg, så kan du iallefall se prinsippet:

<%
String str = \"Dette er en liten test som jeg håper skal fungere\";
out.println( str.substring( 0, 15 ) + \"...\" );
%>

/nute
Avatar billede jarimark Nybegynder
04. oktober 2001 - 11:36 #13
Nute, jeg har et problem med at finde ud af hvordan sammenhængen mellem det origanle script:
(Recordset1_data = Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\" : Recordset1_data Recordset1_data
og det du har added
out.println( Recordset1_data.substring( 0, 200 );
skal være? Umildbart virker det ikke...
Avatar billede nute Nybegynder
04. oktober 2001 - 11:41 #14
hmmm....i mine øyne (etter nærmere ettersyn) så vil jeg påstå at din condition *aldri* vil returnere noe annet enn \"\" eller null (antar at Recordset1_data aldri blir initialisert). Grunnen er at i din \"else\" del av din condition, sier du at du vil sette verdien av Recordset1_data til Recordset1_data...hvis ikke Recordset1_data inneholder noe verdi eller at variabelenn ikke har blitt initialisert, så har du et problem. Prøv å bytt ut denne linje:

Recordset1_data = Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\" : Recordset1_data

med denne:

Recordset1_data = (Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\" : Recordset1.getObject(\"text\")

og deretter setter du inn din :

out.println( Recordset1_data.substring(0,200) );

/ntue
Avatar billede olebole Juniormester
04. oktober 2001 - 11:43 #15
;o) Jeg er bare ved at få små fluer i ørerne af alle de, der blander begreberne totalt sammen - og som ikke kender historien ;o)
/mvh
Avatar billede jakoba Nybegynder
04. oktober 2001 - 11:47 #16
Det kunne være sjovt engang at lave et \"stamtræ\" for programmeringssprog. Det er meget ofte en fordel at kunne extrapolere imellem dem.

noget i retning af

assembler fødte cobol og fortran
cobol+fortran fødte algol og PL1
Lisp opstod spontant på et matematisk fakultet et sted.
algol fødte simula, pascal og APL
algol, C, fortran og PL1 holdt orgie og fødte ADA.
pascal fødte C og modula
C giftede sig med simula og fødte C++
C++ og Modula fødte Java
Java, perl og Pascal fødte javascript.

osv osv... bare meget mere komplet :-))

mvh JakobA
Avatar billede jarimark Nybegynder
04. oktober 2001 - 11:47 #17
Nute, det hjalp lidt, men der er et åbenbart et lille problem.. Jeg før følgende meddelse når jeg prøver at åbne siden:

Method substring(int, int) not found in class java.lang.Object.
out.println( Recordset1_data.substring(0,10) ); ;
Avatar billede olebole Juniormester
04. oktober 2001 - 11:52 #18
poesi, Jakob....poesi!  ;o)
Avatar billede jarimark Nybegynder
04. oktober 2001 - 12:02 #19
Det virker som om \"substring\" ikke findes her. Er der nogen der har en ide til en anden måde at gøre det på?
Avatar billede nute Nybegynder
04. oktober 2001 - 12:09 #20
jarimark >> har du importert java.lang.* i din fil ?

olebole >> skal jeg så tolke 04/10 2001 11:43:35  som at du er enig ??

jakoba >> \"Java, perl og Pascal fødte javascript\" ?? merkelig...det går jo i totalt motsatt retning av faktum vi allerede har etablert i denne thread ?!

:)
Avatar billede jarimark Nybegynder
04. oktober 2001 - 12:17 #21
Nej, der er kun import=\"java.sql.*\".. Hvad skal der stå for at få java.lang.* med?
Avatar billede jakoba Nybegynder
04. oktober 2001 - 12:22 #22
import java.lang.*;

men den bliver da vist importeret helt automatisk af sig selv ?
Avatar billede jarimark Nybegynder
04. oktober 2001 - 12:28 #23
Tja, det virker i hvert fald ikke...
Den vil ikke acceptere at bruge substring... Og den bliver ikke just mere glad hvis jeg prøver at importere java.lang.*
Avatar billede jakoba Nybegynder
04. oktober 2001 - 12:38 #24
måske:

import java.lang.String;

men mon ikke snarere den skal bruges korrekt, dvs som tilføjelse til et String objekt:
    String mintekst = \"et eller andet\";
    mintekst.substring(3,8);  // skulle give \'eller\'

er din variabel \'Recordset1_data\' erklæret som en String?

mvh JakobA
Avatar billede olebole Juniormester
04. oktober 2001 - 12:47 #25
nute >> Ja absolut, bortset fra jeg ikke har indtryk af, at samarbejdet var særlig formaliseret mellem NS og Sun - men det kan godt være, jeg bare skal have pudset historien lidt af. Vi taler jo her om \'Yngre Stenalder\'  :)
/mvh
Avatar billede nute Nybegynder
04. oktober 2001 - 12:55 #26
jarimark >> hvis det ikke er en *for* stor fil, kan du ikke poste den her inne ? Denne form for debugging er ganske langtrekkende for det kan være mange ting som spiller inn.

Prøv eventuelt å bytt ut denne:

Recordset1_data = (Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\" : Recordset1.getObject(\"text\")

med denne:

Recordset1_data = (String)(Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\" : Recordset1.getObject(\"text\")

Grunnen er at din getObject() metode returnerer naturlig nok et object, og dette må typecastes til en String for at du skal kunne benytte metoden på den. Alternativt kan du kalle medoten Recordset1.getString(\"text\") istedenfor Recordset1.getObject(\"text\")

/nute

Avatar billede jarimark Nybegynder
04. oktober 2001 - 13:17 #27
Endelig virker det. Det var getString der manglede for at den kunne forstå det.
Mange tak nute!! Det tog sin tid, jeg er glad for at du gad hjælpe.

/Jarimark
Avatar billede nute Nybegynder
04. oktober 2001 - 13:19 #28
jarimark >> det var da så lidt :) det er jo derfor vi er her inne :)
Avatar billede jarimark Nybegynder
04. oktober 2001 - 13:20 #29
Jeg har dog et lille ekstra spørgmål. Er der en måde hvorpå man kan bede den om at vise det selvom der er under 200 tegn i databasen?
Avatar billede nute Nybegynder
04. oktober 2001 - 13:22 #30
bytt ut:

out.println( Recordset1_data );

med

if( Recordset1_data.length >= 200 ){
  Recordset1_data = Recordset1_data.substring( 0, 200 );
}
out.println( Recordset1_data );

/nute
Avatar billede jarimark Nybegynder
04. oktober 2001 - 13:35 #31
Tja, problemmet er at jeg har fået det til at virke ved at gøre sådan:
<%= Recordset1_data = (String) Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\":Recordset1.getString(\"text\").substring(0, 200)%>
Avatar billede nute Nybegynder
04. oktober 2001 - 13:38 #32
jammen så skriver du denne linje:

<%= Recordset1_data = (String) Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\":Recordset1.getString(\"text\").substring(0, 200)%>


om til:

<%
Recordset1_data = (String) Recordset1.getObject(\"text\"))==null || Recordset1.wasNull() ? \"\":Recordset1.getString(\"text\");
if( Recordset1_data.length >= 200 ){
  Recordset1_data = Recordset1_data.substring( 0, 200 );
}
out.println( Recordset1_data );
%>

/nute
Avatar billede jarimark Nybegynder
04. oktober 2001 - 13:45 #33
Det vil den ikke. Jeg tror problemmet ligger i at Recordset1_data bliver brugt flere gange, og er defineret et andet sted... Hvis jeg prøver at tilføje noget efter:

wasNull() ? \"\":Recordset1.getString(\"text\")

Virker det ikke mere...
Avatar billede nute Nybegynder
04. oktober 2001 - 13:47 #34
du har 2 parenteser etter getObject(\"text\")...det ene skal fjernes:

Recordset1_data = (Recordset1.getString(\"text\")==null || Recordset1.wasNull()) ? \"\":Recordset1.getString(\"text\");

/nute
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