04. oktober 2001 - 10:53Der 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?
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
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?
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
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:
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
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
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, 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...
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:
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.
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 ?!
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.*
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?
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
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.
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\")
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)%>
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:
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.