Avatar billede jorgen1 Nybegynder
13. december 2007 - 01:56 Der er 8 kommentarer og
1 løsning

Hvordan manipulere tekststreng som indeholder tegnet mindre end?

I XML-filer må der ikke være tegn som "&", ">" og "<". Jeg har lavet et par små løkker, som fjerner tegnene. Men "<" kan ikke klares.
Fx. If Mid(tekststreng, var, 1) = "<" Then ... -
Selvom tekststrengen har "<" i sig, vil den ikke blive fundet.
Er der nogen derude, som har et godt forslag?
Avatar billede epimetheus Nybegynder
13. december 2007 - 04:37 #1
Prøv ASCII kode i stedet for.

Prøv at udskifte "<" med chr(60)
Avatar billede jorgen1 Nybegynder
13. december 2007 - 09:30 #2
Desværre. Det skulle man tro, men det fungerer ikke. Det fungerer med de øvrige tegn, bl.a. > (chr(62), men altså ikke med chr(60).
Det har måske noget med omgivelserne at gøre? Det kører under Microsoft asp.net 2.0 og data bliver hentet fra en Access database.
Avatar billede tjacob Juniormester
13. december 2007 - 12:25 #3
Du kunne prøve Replace i stedet for.
Hvis du blot skal fjerne nogle tegn er der ingen grund til at lave loops.

tekststreng = Replace(tekststreng, "<", "", 1, , vbTextCompare)
Avatar billede jorgen1 Nybegynder
13. december 2007 - 14:00 #4
Det løste ikke direkte problemet, for jeg skal have fjernet mærkelige koder som <div id=etellerandet>.
Men svaret gav mig en idé til at omgå problemet. Ved at erstatte "<" med et andet tegn, kan der nu manipuleres. Fx. tekststreng = Replace(tekststreng, "<", "#",1,,vbTextCompare) Så du har fortjent dine point.
Men jeg vil sådan set gerne høre, hvis nogen kender til en egentlig løsning.
Avatar billede tjacob Juniormester
13. december 2007 - 14:11 #5
Ja, det lyder godt nok mystisk at Replace kan finde et tegn, som Mid ikke kan....
Avatar billede tjacob Juniormester
13. december 2007 - 14:38 #6
Jeg er netop kommet i tanke om at det måske har med encodingen at gøre, siden du kører i et asp miljø.
Det kan være det er noget unicode eller utf som skaber problemet.

Du kunne forsøge Mid-sætningen med ChrB(60) (tolkes som Byte) eller ChrW(60) (tolkes som unicode).
-Bare et skud i tågen...
Avatar billede jorgen1 Nybegynder
13. december 2007 - 15:12 #7
Det var ikke noget dårligt skud, for ChrW(60) gav resultat!
Mærkeligt i øvrigt at det kun er dette tegn, som skal have særbehandling men ikke de øvrige.
Men jeg skal i hvert fald have sat mig ind i kodesættene og være konsekvent bruger af den eller de bedste.
Avatar billede tjacob Juniormester
13. december 2007 - 15:19 #8
Ja, det er underligt at det kun er dette tegn, men problemet stammer jo nok fra den editor der oprindeligt har lavet teksten.
Avatar billede jorgen1 Nybegynder
13. december 2007 - 16:30 #9
Der er i hvert fald mange besynderligheder. Teksten kommer som nævnt fra en Access database, og selvom bogstaverne "<" og ">" er skrevet på samme tastatur, kan de altså ikke søges på samme måde.
I øvrigt har Access lidt af det samme problem. Jeg lavede en søg og erstat i databasen fra "<" til "&#60;". Det gav imidlertid problemer andetsteds, hvorfor jeg ville lave søg og erstat tilbage. Men nu ville Access ikke genkende tegnet "#", så søgningen kunne ikke lade sig gøre. En søgning på tegnet alene gav alle tal til gengæld.
Sådan er der så meget. Det er derfor eksperter er så dyre, for de har været ude for alle disse mærkeligheder.
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