VGnet.dk - Strenge

Koden anvendes helt på eget ansvar!

Indhold:

Indsæt en streng i en anden streng

Function IndsaetStr(StrHel As String, StrDel As String, Pos As Integer) As String
' (C) Copyright Lars Vangsgaard
' Indsætter en delstreng i en streng på en given position (base 1)
  If Pos > 0 Then
    If Pos > Len(StrHel) Then
      IndsaetStr = StrHel & StrDel
    Else
      IndsaetStr = Left(StrHel, Pos - 1) & StrDel & Right(StrHel, Len(StrHel) - Pos + 1)
    End If
  Else
    IndsaetStr = StrDel & StrHel
  End If
End Function

Slet en delstreng fra en anden streng

Version 1: sletter kun første forekomst af strengen.

Function SletStr(StrHel As String, StrDel As String) As String
' (C) Copyright Lars Vangsgaard
' Sletter en delstreng fra en streng
  Dim Pos
  Pos = InStr(1, StrHel, StrDel, vbTextCompare)
  If Pos > 0 Then
    SletStr = Left(StrHel, Pos - 1) & Right(StrHel, Len(StrHel) - Len(StrDel) - Pos + 1)
  Else
    SletStr = StrHel
  End If
End Function

Version 2: sletter alle forekomster af strengen.

Function SletAlleStr(StrHel As String, StrDel As String) As String
' (C) Copyright Lars Vangsgaard
' Sletter alle forekomster af en delstreng fra en streng
  Dim Pos, StrH As String
  StrH = StrHel
  Pos = InStr(1, StrH, StrDel, vbTextCompare)
  Do While Pos > 0
    StrH = Left(StrH, Pos - 1) & Right(StrH, Len(StrH) - Len(StrDel) - Pos + 1)
    Pos = InStr(1, StrH, StrDel, vbTextCompare)
  Loop
  SletAlleStr = StrH
End Function

Omvend en streng

En streng kan omvendes med VBA-standardfunktionen

StrReverse(streng)
Her er imidlertid en alternativ udgave:

Function OmvendStr(IndStreng) As String
' (C) Copyright Lars Vangsgaard
' Omvender en streng
  Dim i As Integer, StrLgd As Integer
  OmvendStr = ""
  StrLgd = Len(IndStreng)
  For i = 1 To StrLgd
    OmvendStr = OmvendStr & Mid(IndStreng, 1 + StrLgd - i, 1)
  Next i
End Function

Et element i en tegnsepareret liste

En streng kan f.eks. være en kommasepareret samling af delstrenge. Funktionen finder et element efter nummer fra listen.

Function Delstreng(streng As String, skilletegn As String, nummer As String) As String
' (C) Copyright Lars Vangsgaard
' Et element efter nummer fra en tegnsepareret samling af delstrenge
  Dim h As Variant
  h = Split(streng, skilletegn)
  If nummer <= UBound(h) + 1 Then
    Delstreng = h(nummer - 1)
  Else
    Delstreng = ""
  End If
End Function

Siden er oprettet 25-12-2006 og sidst opdateret 14-01-2007 22:53.