Avatar billede trumf Nybegynder
19. maj 2002 - 21:52 Der er 15 kommentarer og
1 løsning

længde på sætning med plinger

Hej Eksperter

Jeg skal skrive de første 15 tegn af et felt men har nogle problemer med plingerne og citationstegnene.

Som det er nu:

Do While Not hent.EOF
  response.write(left(hent("navn"), 15) & "..")
  ....
  hent.MoveNext
Loop

Så er det at jeg gerne vil have at f.eks. navnet ["R" de Ruinart, brut] skal skrives ["R" de Ruinart,..] men i stedet kommer ud som ["R" d..] fordi jeg har lagt det i DB som ["R" de Ruinart, brut]. Jeg har oversat plingerne med '

Det kan forekomme at der begge tegn i samme sætning og flere af dem.


Mvh.

TRUMF
www.ceb.dk

Avatar billede kimiwan Nybegynder
19. maj 2002 - 22:24 #1
i din tekststreng i vbscript kan du bruge "" (to citationstegn) til at simulere et citationstegn.  f.eks.

"""Hej,"" sagde manden." -> "Hej," sagde manden.

så skulle du være ude over det problem
Avatar billede trumf Nybegynder
19. maj 2002 - 22:39 #2
Nej det løser ingenting...

Jeg skal jo skrive et bestemt antal tegn (15) og .. hvis den samlede længde er mere end 15 tegn.

Dit foreslag vil betyde at der skrives 14 tegn da "" er to tegn men skrives som et. Og hvad med plingerne ? de må ikke skrives da det er tekst der skal bruges som et link!
Avatar billede trumf Nybegynder
19. maj 2002 - 22:50 #3
Løsningen er ret simpel, jeg har lige fundet ud af det, men jeg giver lige ti minutter at finde den, så pointene kan gives!
Avatar billede kimiwan Nybegynder
19. maj 2002 - 22:57 #4
Når du skriver "" i din aspkode, bliver det gemt som " i databasen.  altså det ene tegn, det også er.  Så den løsning holder 100%.
Avatar billede kimiwan Nybegynder
19. maj 2002 - 22:58 #5
...og det var et svar, nu du valgte at afvise det gamle.
Avatar billede trumf Nybegynder
19. maj 2002 - 23:04 #6
Hvis det ikke var fordi jeg allerede havde havde en masse kode der gemmer mine oplysninger på den anden måde, så kunne jeg måske bruge dit svar, men
Avatar billede kimiwan Nybegynder
19. maj 2002 - 23:06 #7
bruger du en access database?
Avatar billede kimiwan Nybegynder
19. maj 2002 - 23:08 #8
og hvad har du skrevet i databasen i stedet for " ?  ... ' eller " ?
Avatar billede trumf Nybegynder
19. maj 2002 - 23:14 #9
Hvis det ikke var fordi jeg allerede havde havde en masse kode der gemmer mine oplysninger på den anden måde, så kunne jeg måske bruge dit svar, men jeg skriver ikke al min kode om fordi der findes en anden måde at gøre tingene på. Desuden ville du ikke svare på hvad jeg så gjorde med plingerne som også er oversat.

Jeg spørger igen.

Hvordan får jeg udskrevet en sætning der indeholder præcis 15 tegn eller mindre, og ["] og ['] tæller kun som et (1) tegn ???

Svar på det og du får pointene, det kan da ikke være så svært...
Avatar billede trumf Nybegynder
19. maj 2002 - 23:15 #10
' = '
" = "

access DB
Avatar billede -master-d- Nybegynder
19. maj 2002 - 23:18 #11
Jeg ved det ikke men kan man ikke bruge replace funktionen ?

str = (left(hent("navn"), 15) & "..")
str = Replace(str, "'", "''")
str = Replace(str, """, "''")

Prøv men er ikke helt sikker.
Avatar billede -master-d- Nybegynder
19. maj 2002 - 23:19 #12
ups sådan her så da

str = (left(hent("navn"), 15) & "..")
str = Replace(str, "'", "'")
str = Replace(str, """, "''")
Avatar billede kimiwan Nybegynder
19. maj 2002 - 23:19 #13
for at bruge noget af din egen kode, her er "den nemme løsning"...

Do While Not hent.EOF
  response.write left(replace(replace(hent("navn"),"'","'"),""",""""), 15) & ".."
  '....
  hent.MoveNext
Loop
Avatar billede -master-d- Nybegynder
19. maj 2002 - 23:20 #14
tror vist kimiwan ramte plet der.
Avatar billede kimiwan Nybegynder
19. maj 2002 - 23:23 #15
det ville jo bare være lidt mere lækkert hvis man kunne nøjes med at hente left(feltnavn,15) ud af databasen i stedet for at hive hele feltlængden ind i aspkoden og så først bearbejde den der.

min forrige kode skal nok iøvrigt lige rettes lidt for at undgå fejl hvis længden er mindre end 15 characters...

if len(replace(replace(hent("navn"),"'","'"),""","""")) > 15 then
response.write left(replace(replace(hent("navn"),"'","'"),""",""""), 15) & ".."
else
response.write replace(replace(hent("navn"),"'","'"),""","""")
end if
Avatar billede trumf Nybegynder
19. maj 2002 - 23:23 #16
Nej, men han fik pointene for sin ivrighed :-)

Her er svaret:
yVinNavn = left(replace(replace(hent("navn"), "'", "¤"), """, "|"), 15)
response.write(replace(replace(yVinNavn, "¤", "'"), "|", """) & "..")

Der ska laves replace før left!
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
Kurser inden for grundlæggende programmering

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