PDA

Vollständige Version anzeigen : Feldinhalt teilen


Bernhard092
14.06.2001, 07:55
Hallo,

folgendes Problem:

Feld1: test.domain.de

daraus bräuchte ich:
Feld2: domain.de
feld2: test

Wie kann ich das mit VBA lösen ?

Danke für Tips

Gruß

Bernhard

FW
14.06.2001, 09:17
... sieht der Feldinhalt immer so aus: xxxxx.yyyyy.zzzzz oder möchtest Du die letzten zwei, durch Punkt getrennte Zeichenfolgen herausfiltern?

Morli
14.06.2001, 09:52
Hallo Bernhard,

z.B. die folgenden Zeilen:

Feld2 = Left(Feld1, InStr(1, Feld1, ".") - 1)
Feld3 = Right(Feld1, Len(Feld1) - InStr(1, Feld1, "."))
liefern für Feld2: test
und für Feld3: domain.de

Gruß

Rainer :)

A.S.
14.06.2001, 10:44
Hallo Bernhard,

siehe dazu auch unter <a href="http://www.donkarl.com/FAQ/FAQ2Allgemein.htm">FAQ 2.20 Feldinhalte nachträglich trennen</a>

Gruß

Arno

A.S.
17.06.2001, 14:02
on top....

bmaendle
17.06.2001, 15:44
Hallo FW,

ich brauche immer die beiden lezten, mit einem Pukt getrennten Wörter.

Gruß

Bernhard

FW
17.06.2001, 16:08
... also, für alle, die vor dem Problem stehen, aus einem String, in dem durch ein bestimmtes Zeichen getrennte Begriffe stehen all diese Begriffe herauszufiltern, folgende Routine:

Public Function varParseString(ByVal strStringToParse As String, ByVal strSeparator As String) As Variant
Dim lngCount As Long, lngPos As Long
Dim strArray() As String

strStringToParse = Trim$(strStringToParse)
lngPos = InStr(strStringToParse, strSeparator)
Do While lngPos
lngCount = lngCount + 1
ReDim Preserve strArray(1 To lngCount)
strArray(lngCount) = Trim$(Left$(strStringToParse, lngPos - 1))
strStringToParse = Trim$(Mid$(strStringToParse, lngPos + 1))
lngPos = InStr(strStringToParse, strSeparator)
Loop
If strStringToParse <> "" Then
lngCount = lngCount + 1
ReDim Preserve strArray(1 To lngCount)
strArray(lngCount) = Trim$(strStringToParse)
End If
If lngCount Then
varParseString = strArray
Else
varParseString = Null
End If
End Function

Die Funktion ist vom Typ VARIANT, welcher ggf. auch als ARRAY benutzt werden kann.

Hier der Beispielcode:

Dim varFeld As Variant
Dim lngAnzahl as Long, lngVar as Long

varFeld = varParseString("abc|def|ghi","|")
lngAnzahl = UBound(varFeld)
For lngVar = 1 To lngAnzahl
Debug.Print varFeld(lngVar)
Next lngVar

Im Debug-Fenster sollte folgendes erscheinen:

abc
def
ghi

Du Bernhard müßtest als zweiten Parameter "." übergeben und nur die letzten zwei Elemente auswerten:

varFeld = varParseString("test.domain.de",".")
lngAnzahl = UBound(varFeld)
For lngVar = lngAnzahl - 1 To lngAnzahl
Debug.Print varFeld(lngVar)
Next lngVar

liefert Dir dann "domain" und "de", die Du wieder mit "." verknüpfen kannst.
Ansonsten kannst Du diesen Code auf Deine Bedürfnisse anpassen oder ihn als Inspiration für eigene Routinen verwenden.

Alles klar?

Frank

bmaendle
17.06.2001, 18:20
Hallo Frank,

danke für das Listing.

Wie kann ich die Verknüpfung zwischen Domain und de herstellen ? Ich komme nicht klar, welche Variablen du in der Schleife damit belegst..

Danke

FW
18.06.2001, 11:47
... in Deinem Beispiel:

Feld = varFeld(lngAnzahl - 1) & "." & Feld = varFeld(lngAnzahl)

Alles klar?

Frank