nun möchte ich, dass er z.B. test3 sucht und ab dort test4 aufsplittet und in einer anderen Textbox darstellt und aber dabei das underline Zeichen entfernt... .
_________________ Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
Kaali_ Tutorial Leser
Anmeldedatum: 14.12.2007 Beiträge: 42
Verfasst am: 26.02.2008, 15:01
Wow, danke Zig...
werde den Code mal ausprobieren.. danke
Gruß, Kaali
//kleiner Edit: wie mache ich es, dass mir aber nur z.B. test3 anzeigt und das was danach kommt auch noch löscht ?
Gruß, Kaali
ZiG_ Überflieger
Anmeldedatum: 07.03.2007 Beiträge: 1248
Verfasst am: 26.02.2008, 15:22
Ähm, du weißt das in dem String test3 steht und willst dass noch ausschneiden lassen?
Wozu das denn?
Du weißt ja schon das es test3 heißt.
Kannst ja einfach so in textbox2 hineingeben.
Ich erklär dir aber trotzdem mal wie es funktioniert.
Mit dem Befehl Mid$ kannst du einen String aus einem anderen herauskopieren.
Dazu kann man bei Mid$ die Anfangsposition angeben und wieviele Zeichen er ab dieser Position einlesen soll.
Mit InStr kann man in einem string nach einem Zeichen oder Wort suchen lassen und bekommt die Postition dessen zurück.
Ich teile mal den Vorgang auf, damit man es besser versteht.
Code:
Dim pos1 as long
Dim pos2 as long
Dim sBuffer as string
Auf pos2 könnte man eigentlich verzichten, da du ja die exakte Länge des Wortes "test3" kennst. _________________ Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
Kaali_ Tutorial Leser
Anmeldedatum: 14.12.2007 Beiträge: 42
Verfasst am: 26.02.2008, 15:42
Hi,
ich meinte es etwas anders:
er solle z.B. Test3 suchen und aber das darauffolgende wort herausschneiden, das darauffolgende Wort wäre in diesem Falle Test4, Test4 variirt aber ständig ..
darum, wollte ich es nochmals herausschneiden
Gruß, Kaali
c0re_ « Moderator »
Anmeldedatum: 28.11.2007 Beiträge: 425
Verfasst am: 26.02.2008, 16:01
Zuerst splittest du am "/". Dann hast du jeden, ich nehme mal an, Ordnernamen in einem Element des Arrays.
Code:
Dim s As String, sArray() As String, sElement as String
s = "test\_test2\_test3\_test4\_test5\_test6"
sArray = Split(s, "\")
Dann machst du eine Schleife, die alle Elemente des Arrays durchgeht.
Code:
For i = 0 To Ubound(sArray) ' bis zum letzten Element
If sArray(i) = "_test3" Then
sElement = Replace(sArray(i + 1), "_", "")
Exit For
End If
Next
Wenn das Element den Inhalt "_test3" hat, wird das nächste Element in der Variable gespeichert. Das "_" wird durch das Replace entfernt, aber das weißt du ja hoffentlich. _________________
Zuletzt bearbeitet von c0re_ am 26.02.2008, 16:27, insgesamt einmal bearbeitet
_________________ Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
c0re_ « Moderator »
Anmeldedatum: 28.11.2007 Beiträge: 425
Verfasst am: 26.02.2008, 16:17
Wieso mehr Resourcenverbrauch?
InStr ist doch bestimmt heftiger als so eine kleine Schleife. o0 _________________
ZiG_ Überflieger
Anmeldedatum: 07.03.2007 Beiträge: 1248
Verfasst am: 26.02.2008, 17:02
Damit meine ich die ganzen Variablen die du benötigst.
Klar kann man es so auch machen. Ist halt Geschmackssache.
Und eine Schleife in der man bei jedem Durchlauf einen Text vergleicht ist nicht so schonend wie du meinst.
InStr selbst ist nicht langsam. Der Zugriff auf die Textboxen ist langsam.
Das würde ich bei eigenen Projekten durch Variablen ersetzen.
Aber hier hab ichs mal vereinfacht gehalten.
Btw. Die Funktion StrComp ist um einiges schneller als der Vergleich "If sArray(i) = "_test3". _________________ Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)