Avatar billede dkkarpen Nybegynder
01. marts 2001 - 14:29 Der er 48 kommentarer og
1 løsning

Find og replace en streng

Halløj

Jeg har en bunke strenge som kan se således ud: \"---------------------- |*) variabel text |----------------------\"

Kan jeg bruge wildcards til at replace den fra den samlede tekst?

Kan jeg forøvrigt lave en replace på alt andet end det der indtastes?
Avatar billede nute Nybegynder
01. marts 2001 - 14:41 #1
hvis alle strenger ser likedan ut, så er det jo bare å finne indexen til \'*) \' og \' |-\' og deretter replace alt som ligger mellom disse to indexene...

forstår jeg deg rett ? evt. hvis du poster noen exempler på hvordan dine strenger skal se ut etter en replace, så hadde det hjulpet...

/nute
Avatar billede jonax Nybegynder
01. marts 2001 - 23:05 #2
strStrengBegynd = \"---------------------- |*) \"
strStrengSlut = \" |----------------------\"

dim arrVariabel(2)
arrVariabel(0) = \"variabel text1\"
arrVariabel(1) = \"variabel text2\"
arrVariabel(2) = \"variabel text3\"

for t = 0 to ubound(arrVariabel,1)
response.write strStrengBegynd & arrVariabel(t) & strStrengSlut & \"<br>\"
next
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 10:20 #3
jonax>>Din løsning ligger op til at jeg kender teksten mellem strengbegynd og streng slut. Men det gør jeg ikke.
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 10:25 #4
Eksempler:

------------------------------------------------------ |1) Der henvises til SM U-1-93 | |2) Der henvises til SM U-7-94, SM U-8-94 og SM U-| |15-94 |------------------------------------------------------

-------------------------------------------------------------------- |*) Note:Der henvises til SM U-1-92 vedrørende anerkendelse af | |psykisk lidelse - chok i en vidnesituation. |--------------------------------------------------------------------

----------------- |*) Se SM U-11-97|-----------------

Som i kan se er der tåbeligt nok ikke samme antal karakterer i tankestregsseperatoren. Hvad gør jeg?
Avatar billede nute Nybegynder
02. marts 2001 - 11:07 #5
Kan dette hjelpe ?

funtion replaceContent( streng, replaceWith )
  startIndex = InStr( streng, \"- |\") + 4
  endIndex  = InStr( streng, \"| -\" - 2
  replaceStr = Mid( streng, startIndex, endIndex )
  replaceContent = replace( streng, replaceStr, replaceWith
end function

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 11:33 #6
Giver:

Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EE)
Tegnet \')\' var ventet
/dsasm/smb.asp, line 15, column 36
endIndex = InStr( streng, \"| -\" - 2
-----------------------------------^
Avatar billede nute Nybegynder
02. marts 2001 - 11:35 #7
endIndex = InStr( streng, \"| -\") - 2

glemte et \')\' :)

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 11:46 #8
Ok - hvordan bruger jeg funktionen?

replaceContent(str) ?
Avatar billede nute Nybegynder
02. marts 2001 - 11:52 #9
<html>
<body>
<%
streng = \"---- |*) variabel text |----\"
streng2 = \"Dette skal inn istedenfor\"

response.write replaceContent( streng, streng2 )

%>
</body>
</html>
/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 11:59 #10
Ok - det skal kun køre såfremt replacestr findes i min streng. Kan det lade sig gøre?

Jeg smider lige 30 points oveni ;-)
Avatar billede nute Nybegynder
02. marts 2001 - 12:03 #11
den funksjonen jeg har laget til deg, replacer *alt* som er mellom \"--- |\" og \"| ---\" med det du sender med som parameter...

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 12:05 #12
Ok - men jeg får en fejl:

Null er brugt ugyldigt: \'endIndex\'

Hvorfor?
Avatar billede nute Nybegynder
02. marts 2001 - 12:18 #13
pass på å ha mellomrom mellom \"|\" og \"-\" ! Du skal finne en substring som er \"| -\", og det er ikke det samme som \"|-\"... u c ?

hvis du tar eksempelet mitt fra klokken 11:54, bytt ut :

streng = \"---- |*) variabel text |----\"

med:

streng = \"---- |*) variabel text | ----\"

så bør det fungere...

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 12:20 #14
Det kan jeg ikke fordi min det som du kalder for streng er placeret inde midt i en lang tekst fra en DB.

Så jeg bruger din funktion således:

replaceContent(rs(\"sagsfremstilling\"), \"Se note\")
Avatar billede nute Nybegynder
02. marts 2001 - 12:23 #15
ok, men så bytt ut :

endIndex = InStr( streng, \"| -\") - 2

med

endIndex = InStr( streng, \"|-\") - 2

/nute

Avatar billede dkkarpen Nybegynder
02. marts 2001 - 12:27 #16
Samme resultat :-(
Avatar billede nute Nybegynder
02. marts 2001 - 12:30 #17
hvordan ser din første rs(\"sagsfremstilling\") ut ?

hva ligger i denne ?

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 12:35 #18
Sådan her f.eks.:

Sag nr. 1 - 108415-97:

En 45-årig lærer deltog i en volleyballkamp, hvor en medspiller, der stod foran sikrede ved en

----------------- |*) Se SM U-11-97|----------------- servmodtagelse sagde: \"Jeg har.\" Imidlertid dukkede medspilleren sig i sidste øjeblik, hvorfor sikrede forsøgte at gå efter bolden. Han bevægede sig hurtigt fremad, men i det samme bristede den venstre achillessene. Sikrede havde oplyst, at det var muligt, at han var gledet lidt i svedaflejringer på gulvet.

Ved afgørelse af 11. september 1997 havde Arbejdsskadestyrelsen afvist at anerkende skaden som et ulykkestilfælde eller en kortvarig skadelig påvirkning. Der blev lagt vægt på, at det ikke var overvejende sandsynligt, at der har været tale om en udefra kommende påvirkning, da sikrede fik en achillesseneruptur i forbindelse med volleyballspil. Sportsskader, hvor fald etc. ikke kan antages at være en helt ualmindelig del af sportsudøvelsen, er undtaget fra nedsættelse af skadelidtes bevisbyrde til den udefra kommende påvirkning, d.v.s. der skal være tale om hændelser, der klart er helt ud over, hvad der kan forventes i den aktuelle sportsudøvelse.

I klagen havde sikredes advokat henvist til en dom fra Østre Landsret af 5. januar 1998, hvor en fingerskade som følge af, at sikrede blev ramt af en bold, som han prøvede at standse, blev anerkendt som et ulykkestilfælde (2 dommere mod 1). Efter advokatens opfattelse fremgik det af dommen, at det må anerkendes som en ulykke, hvis følgen er værre end man må påregne. Efter advokatens opfattelse måtte dette i den konkrete sag føre til anerkendelse.

Til brug for sagen havde Ankestyrelsen indhentet en erklæring fra et øjenvidne, der oplyste, at spilleren lige foran sikrede råbte: \"Jeg har\", men dukkede sig i sidste øjeblik. Dette medførte, at sikrede lynhurtigt og overraskende måtte bevæge sig fremad med det resultat, at han gled og vred om, hvorved skaden opstod. Årsagen til skaden var efter vidnets mening sikredes pludselige bevægelser - eventuelt kombineret med sved på banen. Der var vedlagt en skitse, der viste spillernes placering ved modtagelsen af serven og boldens bane.
Avatar billede nute Nybegynder
02. marts 2001 - 12:37 #19
og du vil bytte ut \'Se SM U-11-97\' med \'Se post\' ?!

Avatar billede dkkarpen Nybegynder
02. marts 2001 - 12:40 #20
Jeg vil bytte:
----------------- |*) Se SM U-11-97|-----------------

ud med: f.eks. \"Se note\"

Og udskrive: Se SM U-11-97

nederst i på siden.
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 12:40 #21
DU får lige 30 oveni ;-)
Avatar billede nute Nybegynder
02. marts 2001 - 12:53 #22
denne fungerer for meg...jeg har modifisert den litt, men du bør leke litt med indexene for å få det til å fungere 100% som du vil

function replaceContent( streng, replaceWith )
  startIndex = InStr( streng, \"- |\") + 4
  endIndex  = InStr( streng, \"|-\") - 2
  replaceStr = mid( streng , startIndex, endIndex - startIndex )
  replaceContent = replace( streng, replaceStr, replaceWith )
end function

en annen ting er at du bør være forsiktig med å bruke gåseøyne (quotes) i din database. Du bør erstatte disse med &quot;.

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 13:03 #23
Jeg får nu:

Null er brugt ugyldigt
/dsasm/smb.asp, line 16

Linie 16: replaceStr = mid( streng , startIndex, endIndex - startIndex )
Avatar billede nute Nybegynder
02. marts 2001 - 13:06 #24
kjør denne, og post resultatet:

function replaceContent( streng, replaceWith )
  startIndex = InStr( streng, \"- |\") + 4
  endIndex  = InStr( streng, \"|-\") - 2
  replaceContent = startIndex & \" \" & endIndex & \"<br>\"
end function

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 13:19 #25
Det giver 145
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 13:23 #26
Men tallet varierer meget fra post til post.
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 13:24 #27
Det kan også give 981
Avatar billede nute Nybegynder
02. marts 2001 - 13:29 #28
det er meningen at det skal gi forskjellig tall hver gang. Grunnen til det er at du skriver ut hvilken bokstav du skal begynne å bytte ut. Men det jeg synes er merkelig, er at du ikke får ut

145 -2
981 -2

Noe som du burde ha fått. Grunnen til at du skal få -2, er fordi det ikke finnes \"|-\" i din streng, men det gjør det jo...og det fungerer helt fint hos meg...

Er det mulig for meg å få se din kode ( enten på en server eller om du sender den pr. mail) Grunnen til det, er at jeg ville se på innholdet i din db...

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 13:31 #29
Kan jeg sende det til dig?
Avatar billede nute Nybegynder
02. marts 2001 - 13:32 #30
kh@netdoktor.com
Avatar billede nute Nybegynder
02. marts 2001 - 14:10 #31
det er jo klart hvorfor det ikke fungerer. Jeg har modifisert litt til:

function replaceContent( streng, replaceWith )
  if( InStr( streng, \"- |\" ) > 0 ) then
      startIndex = InStr( streng, \"- |\") + 4
      endIndex  = InStr( streng, \"|-\") - 2
          replaceStr = mid( streng , startIndex, endIndex - startIndex )
          replaceContent = replace( streng, replaceStr, replaceWith )
    else
      replaceContent = streng
    end if
end function


MEN !!! det er jo ingen records i din tabell (iallefall ikke i kolonnen \'sagsfremstilling\' som innehholder det du har skrevet her, altså:

\"---- | ... |----\"

/nute
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 14:13 #32
Null er brugt ugyldigt: \'Replace\'
/dsasm/smb.asp, line 224
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 14:14 #33
Prøv at se på smid: 2224, 2188, 2169
Avatar billede dkkarpen Nybegynder
02. marts 2001 - 14:15 #34
Og jeg får: Null er brugt ugyldigt
/dsasm/smb.asp, line 17
Avatar billede nute Nybegynder
02. marts 2001 - 14:57 #35
ok....jeg er tilbake...måtte til møte

ser på det...
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 09:06 #36
Ok - nu har jeg testet det. Det er ikke helt det jeg mener.

Din funktion udskrifter teksten mellem ------ |  og | -----------

Jeg vil gerne have udskiftet det hele. Altså alt hvad der har med noten at gøre.

Det udskiftede skal placeres i en variabel så det kan udskrives nederst på siden.

Forstår du?
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 09:06 #37
Jeg smider lige 30 points ekstra
Avatar billede nute Nybegynder
05. marts 2001 - 10:57 #38
jeg forstår ikke 100%... :-|
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 11:05 #39
Ok

Hvis jeg har teksten:

Sagsfremstilling:
Kvinden blev kort tid efter sin ansættelse i en kommunal hjemmeplejeafdeling opmærksom på, at der havde været svind i beholdningen af morfica.

Hun anmeldte dette til embedslægen i strid med ledelsens ønske.

Dette gav anledning til samarbejdsvanskeligheder i forhold til ledelsen.

Nogen tid efter blev hun indkaldt til møde hos politiet, hvorunder hun fik forelagt 2 trusselsbreve, der var sendt til forvaltningen og stilet til hende.

Ifølge brevenes ordlyd havde hun tidligere leveret narkotika til de anonyme afsendere, og der blev under trusler - rettet mod hendes søn - stillet krav om yderligere leverancer.

Brevene havde ikke givet anledning til beskyldninger om belastende forhold fra ledelsens side.

Kvinden blev sygemeldt en månedstid efter mødet hos politiet, og hun blev senere afskediget med den begrundelse, at hun havde givet anledning til kollegiale uoverensstemmelser.



-------------------------------------------------------------------- |*) Note:Der henvises til SM U-1-92 vedrørende anerkendelse af | |psykisk lidelse - chok i en vidnesituation. |-------------------------------------------------------------------- Arbejdsskadestyrelsen havde afvist at anerkende lidelsen med den begrundelse, at der ikke var påvist nogen sygdom, der var omfattet af erhvervssygdomsfortegnelsen.

Afgørelse:
Ankestyrelsen fandt ikke, at det beskrevne hændelsesforløb kunne sidestilles med et ulykkestilfælde i arbejdsskadeforsikringslovens forstand.

Efter oplysningerne om begivenhedernes varighed kunne tilfældet heller ikke anerkendes som en følge af en kortvarig skadelig påvirkning.

Da den anmeldte lidelse heller ikke var omfattet af erhvervssygdomsfortegnelsen, tiltrådte Ankestyrelsen Arbejdsskadestyrelsens afgørelse.

Ankestyrelsen fandt ikke grundlag for at anmode Arbejdsskadestyrelsen om at forelægge sagen for erhvervssygdomsudvalget, da det ikke fandtes godtgjort, at lidelsen udelukkende eller i overvejende grad var forårsaget af arbejdets særlige art.

SÅ vil jeg gerne have udskrevet:

Sagsfremstilling:
Kvinden blev kort tid efter sin ansættelse i en kommunal hjemmeplejeafdeling opmærksom på, at der havde været svind i beholdningen af morfica.

Hun anmeldte dette til embedslægen i strid med ledelsens ønske.

Dette gav anledning til samarbejdsvanskeligheder i forhold til ledelsen.

Nogen tid efter blev hun indkaldt til møde hos politiet, hvorunder hun fik forelagt 2 trusselsbreve, der var sendt til forvaltningen og stilet til hende.

Ifølge brevenes ordlyd havde hun tidligere leveret narkotika til de anonyme afsendere, og der blev under trusler - rettet mod hendes søn - stillet krav om yderligere leverancer.

Brevene havde ikke givet anledning til beskyldninger om belastende forhold fra ledelsens side.

Kvinden blev sygemeldt en månedstid efter mødet hos politiet, og hun blev senere afskediget med den begrundelse, at hun havde givet anledning til kollegiale uoverensstemmelser.

*) Se note

Arbejdsskadestyrelsen havde afvist at anerkende lidelsen med den begrundelse, at der ikke var påvist nogen sygdom, der var omfattet af erhvervssygdomsfortegnelsen.

Afgørelse:
Ankestyrelsen fandt ikke, at det beskrevne hændelsesforløb kunne sidestilles med et ulykkestilfælde i arbejdsskadeforsikringslovens forstand.

Efter oplysningerne om begivenhedernes varighed kunne tilfældet heller ikke anerkendes som en følge af en kortvarig skadelig påvirkning.

Da den anmeldte lidelse heller ikke var omfattet af erhvervssygdomsfortegnelsen, tiltrådte Ankestyrelsen Arbejdsskadestyrelsens afgørelse.

Ankestyrelsen fandt ikke grundlag for at anmode Arbejdsskadestyrelsen om at forelægge sagen for erhvervssygdomsudvalget, da det ikke fandtes godtgjort, at lidelsen udelukkende eller i overvejende grad var forårsaget af arbejdets særlige art.

Og noten til sidst:

Note:Der henvises til SM U-1-92 vedrørende anerkendelse af | |psykisk lidelse - chok i en vidnesituation.
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 11:05 #40
Forstår du nu?
Avatar billede nute Nybegynder
05. marts 2001 - 11:09 #41
aha....jeg tror nok jeg forstår....omskriver min funksjon til deg :)
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 11:30 #42
Fint tak ;-)
Avatar billede nute Nybegynder
05. marts 2001 - 11:44 #43
dette skal fungere:

\'Global vars
extractString  = \"\"
delimiterString = \"\"

function replaceContent( streng, replaceWith )
  tmpString = streng
  if( InStr( tmpString, \"- |\" ) > 0 ) then
      \'Fetching the text to be extracted
        startIndex    = InStr( tmpString, \"- |\" ) + 5
      endIndex      = InStr( tmpString, \"|-\" ) - 2
        extractString = mid( tmpString, startIndex, endIndex - startIndex )
        \'response.write \"<h1><b>HER: \" & extractString & \"</b></h1><br><br>\"
       
        \'Removing the \"--- |\"
        startIndex      = InStr( tmpString, \"----\" )
        endIndex        = InStr( tmpString, \"- |\" ) + 3
        delimiterString = mid( tmpString, startIndex, endIndex - startIndex )
        tmpString              = replace( tmpString, delimiterString, \"\" )
\'        response.write \"<h1><b>HER: \" + delimiterString + \"</b></h1><br><br>\"
       
    \' Removing the \"|---\"
        tmpString      = StrReverse( tmpString )
        startIndex      = InStr( tmpString, \"----\" )
    endIndex        = InStr( tmpString, \"-|\" ) + 2
        delimiterString = mid( tmpString, startIndex, endIndex - startIndex )
        tmpString              = replace( tmpString, delimiterString, \">rb<>rb<\" )
    \'    response.write \"<h1><b>HER: \" + delimiterString + \"</b></h1><br><br>\"
       
        \' Executing the swap of strings
        tmpString = StrReverse( tmpString )
      replaceContent = replace(tmpString, extractString, replaceWith ) & \"<br><br>\" & extractString & \"<br><br>\"
    else
      replaceContent = tmpStreng
    end if
end function

/nute
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 12:00 #44
Der er problemer hvis der er mere end en sag. For så er der f.eks. op til 8 sagsfremstillinger. Prøv f.eks. at se sm U-6-99 (brug søgemaskinen). Der udskrives sagsfremstillingen efter sag 1 ikke. Kan det fixes?
Avatar billede nute Nybegynder
05. marts 2001 - 12:25 #45
så har du ny mail i din inbox
/nute
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 12:31 #46
Ok - det ser bedre ud. Men noten der udskrives i bunden indeholder f.eks. ||. Er det pga. af forskellige udformninger af noter?
Avatar billede nute Nybegynder
05. marts 2001 - 12:38 #47
det er fordi det ser sånn ut i databasen ... ;) Eneste måte å forandre på er å fikse det i databasen...

hvis jeg kan få lov å komme med et forslag:

det er mye bedre å bruke unike tegnkombinasjoner istedenfor sånn du har laget det. Hvis jeg skulle ha gjort dette her, så hadde jeg benyttet en tegnkombinasjon som kunne ligne dette:

bla, bla, bla... #:# Se også... #:# bla, bla....

Det er mye enklere å finne dem i sin streng, og man vet *alltid* hvilken lengde de er og så videre...

/nute
Avatar billede dkkarpen Nybegynder
05. marts 2001 - 12:39 #48
Det ved jeg godt ;-) Det er ikke mig som har lavet databasen :-))

Tak for hjælpen!
Avatar billede nute Nybegynder
05. marts 2001 - 12:53 #49
det var så lidt.... :) håper du har fått hjelp til det du trengte...

takk for points

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