Gå til innhold

Sett inn eit teikn på plass nummer 5


Anbefalte innlegg

Videoannonse
Annonse

Forklare .. hva?

 

Jo, klart er det en enklere måte. Hadde du sagt at det ikke alltid var 5 hadde jeg postet en annen kode.

 

Her er to måter:

Text1.SetFocus
Text1.SelStart = InStrRev(Text1.Text, "hotmail.com") - 1
Text1.SelText = "@"

Text1.Text = Mid(Text1.Text, 1, InStrRev(Text1.Text, "hotmail.com") - 1) & "@" & Mid(Text1.Text, InStrRev(Text1.Text, "hotmail.com"), Len(Text1.Text) - InStrRev(Text1.Text, "hotmail.com") + 1)

InStrRev() brukes til å finne en posisjon i Text1 og Mid() brukes til å hente ut deler av tekster.

Endret av Jonas
Lenke til kommentar

Jeg vil også bruke den i telefonnummer, der 2 og 2 nummer blir adskilte. Hvordan gjør jeg det?

F.eks:

34578834

34 57 88 34

 

Og det kan også forekomme andre ting. Det jeg egentlig vil ha er en enkel kode (som "text1.text.5=" "", der "Degeim" blir "Dege im") som kan sette inn tegn midt inne i en string.

Endret av Degeim
Lenke til kommentar

I mitt første innlegg ga jeg deg jo en kode for å sette inn tegn i en bestemt plasering!

 

Og i andre innlegg ga jeg deg en kode for å sette inn et tegn før en bestemt tekst i teksten.

 

Hva vil du ha?

 

Edit: Her er en kode for å fikse telefonnr.:

    Dim sTekst As String
   sTekst = Text1.Text
   
   Text1.Text = ""
   
   Dim i
   For i = 1 To Len(sTekst)
       
       Text1.Text = Text1.Text & Mid(sTekst, i, 1)
       
       If i Mod 2 = 0 And Not i = Len(sTekst) Then Text1.Text = Text1.Text & " "
       
   Next i

Endret av Jonas
Lenke til kommentar

Etter hva jeg kan oppfatte, ønsker du deg altså en funksjon som med enkelhet kan plassere tekst et spesifisert sted i en streng? Da kan du eventuelt benytte følgende funksjon:

 

Public Function InsertText(sSource As String, lngPosition As Long, sText As String) As String

   ' Omslutter tekst fra kilden rundt strengen som skal inkluderes
   InsertText = Mid(sSource, 1, lngPosition - 1) & sText & Mid(sSource, lngPosition)

End Function

 

Den benyttes slik:

 

MsgBox InsertText("Degeim", 1, " ")

 

For å segmentere et telefonnummer i like store deler atskilt av mellomrom, kan du benytte følgende funksjon:

 

Public Function SplitSegments(sText As String, lngLenght As Long)

   Dim aBuffer() As Variant, Tell As Long, Cnt As Long
   
   ' Alloker buffer
   ReDim aBuffer(CLng(Len(sText) / lngLenght))
   
   ' Gå gjennom strengen inntil den er fullstedig oppdelt
   For Tell = 1 To Len(sText) Step lngLenght
       
       ' Sett segmentet
       aBuffer(Cnt) = Mid(sText, Tell, lngLenght)
       
       ' Øk variabelen som holder styr på hvilket segment vi til enhver tid er ved
       Cnt = Cnt + 1
   Next

   ' Returner array
   SplitSegments = aBuffer

End Function

 

Hvilket i dette tilfellet kalles således:

 

MsgBox Join(SplitSegments("34578834", 2), " ")

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...