ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 09.05.2000

Diese Seite wurde zuletzt aktualisiert am 09.05.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Gleichmäßige Teilung

Zurück...


Anzeige

(-hg) mailto:hg_splitbylen@aboutvb.de

Sie können einen String mit der MSDN Library - VB SplitSplit-Funktion (ab Visual Basic 6 verfügbar, oder auch siehe Teile-Haberschaft"Teile-Haberschaft") anhand eines Trennzeichens bzw. Trennstrings zerlegen. Einen String in gleich große Teile zerlegen kann die Split-Funktion jedoch nicht. Für diesen Zweck finden Sie hier nun einige Funktionen und Prozeduren.

Die Funktion SplitByLenA gibt den zerlegten String in einem Array zurück. Im optionalen Parameter Count geben Sie an, wie viele Teile Sie höchstens erhalten möchten. Geben sie einen Wert größer als 0 an, enthält das letzte Element mit dem Index Count des zurückgegebenen Arrays den nicht mehr zerlegten Rest. Im optionalen Parameter geben Sie die Untergrenze des Arrays fest (Voreinstellung 0). Sie können einen der beiden Werte der Enumeration OptionBaseConstants oder jeden beliebigen anderen Wert angeben.

Public Enum OptionBaseConstants
  OptionBase0
  OptionBase1
End Enum

Public Function SplitByLenA(Str As String, ByVal Length As Long, _
 Optional ByVal Count As Long, Optional OptionBase As Long) _
 As Variant

  Dim nParts() As String
  Dim nPartsCount As Long
  Dim l As Long
  Dim nStart As Long
  Dim nCount As Long
  
  If Length = 0 Then
    ReDim nParts(-1 To -1)
    SplitByLenA = nParts
    Exit Function
  End If
  If Count <= 0 Then
    nCount = Len(Str)
  Else
    nCount = Count
  End If
  nCount = nCount + OptionBase
  nPartsCount = Len(Str) \ Length
  If Len(Str) Mod Length Then
    nPartsCount = nPartsCount + 1
  End If
  ReDim nParts(OptionBase To nPartsCount - 1 + OptionBase)
  nStart = 1
  For l = LBound(nParts) To UBound(nParts)
    If l >= nCount Then
      nParts(l) = Mid$(Str, nStart)
      Exit For
    Else
      nParts(l) = Mid$(Str, nStart, Length)
      nStart = nStart + Length
    End If
  Next 'l
  SplitByLenA = nParts
End Function

Die Funktion SplitByLenC gibt den zerlegten String in einer Collection zurück. Der optionale Parameter Count hat die gleiche Bedeutung wie bei der Funktion SplitByLenA, nur dass hier das letzte Element der Collection den unzerlegten Rest des Strings enthält.

Public Function SplitByLenC(Str As String, ByVal Length As Long, _
 Optional ByVal Count As Long) As Collection

  Dim nParts As Collection
  Dim nStart As Long
  Dim nLen As Long
  Dim l As Long
  Dim nCount As Long
  
  If Length = 0 Then
    Set SplitByLenC = New Collection
    Exit Function
  End If
  If Count <= 0 Then
    nCount = Len(Str)
  Else
    nCount = Count
  End If
  Set nParts = New Collection
  nStart = 1
  nLen = Len(Str)
  With nParts
    Do While nStart <= nLen
      l = l + 1
      If l >= nCount Then
        .Add Mid$(Str, nStart)
        Exit Do
      Else
        .Add Mid$(Str, nStart, Length)
        nStart = nStart + Length
      End If
    Loop
  End With
  Set SplitByLenC = nParts
End Function

Die Funktion SplitByLenD zerlegt den String und setzt die Teile unter Einfügung eines Trennzeichens oder eines Trennstrings (Delimiter, Voreinstellung = vbCfLf) wieder zu einem neuen String zusammen. Im optionalen Parameter EndWithDelimiter legen Sie fest, ob der zurückgegebene String mit dem Trennstring enden soll (Voreinstellung True).

Public Function SplitByLenD(Str As String, ByVal Length As Long, _
 Optional Delimiter As String = vbCrLf, _
 Optional EndWithDelimiter As Boolean = True) As String

  Dim nStart As Long
  Dim nLen As Long
  Dim nSplitByLenD As String
  
  If Length = 0 Then
    Exit Function
  End If
  nStart = 1
  nLen = Len(Str)
  Do While nStart <= nLen
    nSplitByLenD = nSplitByLenD & Mid$(Str, nStart, Length) _
     & Delimiter
    nStart = nStart + Length
  Loop
  If Not EndWithDelimiter Then
    nSplitByLenD = Left$(nSplitByLenD, Len(nSplitByLenD) _
     - Len(Delimiter))
  End If
  SplitByLenD = nSplitByLenD
End Function

Die beiden Prozeduren SplitByLenListBox und SplitByLenComboBox zerlegen einen String und fügen die Teile in eine ListBox bzw. in eine ComboBox ein.

Public Sub SplitByLenListBox(ListBox As ListBox, Str As String, _
 ByVal Length As Long)

  Dim nStart As Long
  Dim nLen As Long
  Dim l As Long
  
  ListBox.Clear
  If Length = 0 Then
    Exit Sub
  End If
  nStart = 1
  nLen = Len(Str)
  With ListBox
    Do While nStart <= nLen
      .AddItem Mid$(Str, nStart, Length)
      nStart = nStart + Length
    Loop
  End With
End Sub

Public Sub SplitByLenComboBox(ComboBox As ComboBox, Str As String, _
 ByVal Length As Long)

  Dim nStart As Long
  Dim nLen As Long
  Dim l As Long
  
  ComboBox.Clear
  If Length = 0 Then
    Exit Sub
  End If
  nStart = 1
  nLen = Len(Str)
  With ComboBox
    Do While nStart <= nLen
      .AddItem Mid$(Str, nStart, Length)
      nStart = nStart + Length
    Loop
  End With
End Sub

Modul modSplitByLen (modSplitByLen.bas - ca. 3,6 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer