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 26.09.2000

Diese Seite wurde zuletzt aktualisiert am 26.09.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...

Mid-Wirkungen

Zurück...


Anzeige

(-hg) mailto:hg_mid@aboutvb.de

Die Mid$-Funktion bietet in der etwas ungewöhnlichen Syntax, bei der die Funktion auf der linken Seite einer Zuweisung steht, überraschend Performance-steigernde Möglichkeiten. Diese Syntax lautet:

Mid$(ZielString, Position, [Länge]) = TeilString

Denn dabei wird der zugewiesene TeilString einfach im ZielString an die angegebene Position kopiert. Fehlt die Längenangabe, wird der TeilString in voller Länge kopiert, anderenfalls wird er auf die angegebene Länge beschnitten. Der ZielString behält dabei immer die ursprüngliche Länge, selbst wenn sich, dass aus Position und Längenangabe ergäbe, dass sie überschritten würde.

Dieses Prinzip des Einkopierens können Sie beispielsweise nutzen, um das Zusammenfügen einer Reihe von Teilstrings erheblich zu beschleunigen. Sie geben einfach einen genügend langen leeren String vor und kopieren die Teilstrings der Reihe nach in diesen hinein. Dabei müssen Sie lediglich die Einfüge-Position jeweils um die Länge des vorhergehenden Teilstrings verschieben. Das folgende Beispiel erstellt eine Liste aller Dateien in Ihrem Windows-System-Verzeichnis (dessen Pfad natürlich auf Ihrem Rechner anders lauten kann) aus einer FileListBox:

Zunächst die "konventionelle" Weise:

Dim nFiles As String
Dim nFile As String
Dim i As Integer

With File1
  .Path = "c:\windows\system\*.*"
  For i = 0 To .ListCount - 1
    nFiles = nFiles & .List(i) & vbCrLf
  Next 'i
End With

Unter Verwendung der Mid$-Funktion:

Dim nFiles As String
Dim i As Integer
Dim nIndex As Long

With File1
  .Path = "c:\windows\system\*.*"
  nFiles = Space$(.ListCount * 25)
  nIndex = 1
  For i =0 To .ListCount - 1
    Mid$(nFiles, nIndex) = .List (i)
    nIndex = nIndex + Len(.List(i))
    Mid$(nFiles, nIndex) = vbCrLf
    nIndex = nIndex + 2
  Next 'i
End With
nFiles = Trim$(nFiles)

Die einzige Schwierigkeit bei diesem Verfahren liegt darin, von vornherein die erforderliche Länge des Zielstrings abzuschätzen. Im Prinzip schadet es nichts, einfach ins Blaue hinein einen auf jeden Fall genügend langen String zu erzeugen - beim abschließenden Abschneiden der überzähligen Leerzeichen mit Trim$ macht deren Anzahl keinen Unterschied.

Auch das Ausrichten eines Teilstrings in einem anderen String können Sie mit der Mid$-Funktion erheblich beschleunigen. Die Format$-Funktion ist dagegen erheblich langsamer und ist außerdem auf die Ausrichtung innerhalb eines nur aus Leerzeichen bestehenden Strings beschränkt. Verwenden Sie dagegen die Mid$-Funktion, können Sie sogar den Vorgabe-String frei wählen - er kann beliebige Zeichen enthalten.

Linksbündige Ausrichtung:

Mid$(ZielString, 1) = TeilString

Rechtsbündige Ausrichtung:

Mid$(ZielString, Len(ZielString) - Len(TeilString) + 1) = TeilString

Und sogar mittig ausrichten können Sie mittels Mid$ - das kann die Format$-Funktion gar nicht:

Mid$(ZielString, (Len(ZielString) - Len(TeilString)) \ 2) = TeilString

Voraussetzung ist hier allerdings, dass der TeilString kürzer als der ZielString ist. Wenn Sie sich dessen nicht sicher sein können, wird eine Variation notwendig:

Dim nPosition As Long

nPosition = (Len(ZielString) - Len(TeilString)) \ 2
If nPosition < 1 Then
    Mid$(ZielString, 1) = Mid$(TeilString, Abs(nPosition))
Else
    Mid$(ZielString, nPosition) = TeilString
End If

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