> Hvis du kan gøre det kortere, så vil jeg gerne se det.
Jeg ved ikke om det er kortere, men her er min samlede løsning - måske
nogle vil være så venlige at give kritik. Den baserer sig på 3
funktioner: NextChar, changeLetter og NextUp. Det samlede resultat
bliver at den kan tælle i alt fra binært til hexadecimalt og mere til,
bare angiv de nødvendige tegn i "streng". Jeg kan ikke helt overskue om
du få taget højde for tilføjelse af nyt tegn, når du når til
... ?
Mvh Thomas
function NextChar (stringofchars,curchar) 'modtager en tekststreng og et
tegn, og returnerer det tegn 1 plads til højre for det indkomne tegn
'made by Thomas Smedebøl (whisdow@hotmail.com
'please email me if you choose to use this function.
'Free for non-profit use
dim position
position = instr(stringofchars,curchar)
if position<len(stringofchars) then
nextchar = mid(stringofchars,position+1,1)
else
nextchar = left(stringofchars,1)
end if
end function
function changeletter (textstring,letter,place) 'place is counted from
'made by Thomas Smedebøl (whisdow@hotmail.com
'please email me if you choose to use this function.
'Free for non-profit use
left starting with 1
nmbofchars = len(textstring)
if nmbofchars = 1 then
changeletter = letter
else
leftpart = left(textstring,place-1)
rightpart = right(textstring,nmbofchars-place)
changeletter = leftpart & letter & rightpart
end if
end function
Function NextUp (curtext, place)
'made by Thomas Smedebøl (whisdow@hotmail.com
'please email me if you choose to use this function.
'Free for non-profit use
Dim allLastChars, lenstring, streng
version = 2 '1 = 001,002... 2 = 1, 2... altså om der skal foranstilles
firstchar
streng = "0123456789abcdefghijklmnopqrstuvwxyz"
firstchar = left(streng,1)
lastchar = right(streng,1)
lenstring = len(curtext)
allLastChars = true
For i = 1 to lenstring
If mid(curtext,i,1) <> lastchar then allLastChars = false
Next
if allLastChars then 'hvis alle tegn er lastchar tilføj tegn (VIRKER)
if version = 1 then
NextUp = Replace( Space(len(curtext)+1), " ", firstchar)
end if
if version = 2 then
NextUp = nextchar(streng,firstchar) & Replace( Space(len(curtext)),
" ", firstchar)
end if
else
IF curtext <> "" Then 'hvis der allerede findes bogstaver
spot = lenstring-(place) 'udvælges det aktuelle sted for bogstavet
talt fra venstre
if spot < 1 then spot = 1 end if
letter = mid(curtext,spot,1) 'og bogstavet
if letter<>lastchar then 'bogstavet er mindre end z og skal altså
kun tælles en op 'virker
newletter = nextchar(streng,letter)
NextUp = changeletter(curtext,newletter,spot)
else 'bogstavet er z og bogstavet skal nulstilles til a mens det
foranstillede bogstav stilles en op.
temptext = changeletter(curtext,firstchar,spot)
NextUp = NextUp(temptext, place+1)
end if
Else 'hvis der ingen tegn er (VIRKER)
NextUp = firstchar
End if
end if
End function