VB6: Doppelte Zeichen entfernen?!

IQ100

Mitglied
Hey kann mir mal jemand bitte helfen .... normaler weise habe ich bei solchen simplen bsp. keine probleme, aber irgendwie hängt bei mir in letzter zeit der wurm drin *grinz*

FOLGENDES: Habe einen Abschnitt in meinem Programm in dem Wörter so gefiltert werden sollen das jeder Buchstabe jeweils nur einmal vorkommen soll (also wird z.B. aus Hallo => Halo oder aus Blobby =>Bloy usw.)

Angefangen habe ich mit einen String der den Text in Kleinbuchstaben(LCASE) einliest, dann eine Schleife die jeden Buchstaben an einen Zweiten String(str2) gibt und eine dritte Schleife die (str3) durchsucht ob der buchstabe in str2 auch in str3 ist => wenn ja ignorieren, ansonsten einfügen.

Letzten Endes sollte nun das gefilterte Wort in str3 stehen! - Tuts aber bei mir irgendwie nicht.

Danke alle denen die mir nen funzendes Beispiel geben können bzw. Antworten.
 
Hallole IQ100,

versuchs mal hiermit:

Text1=Eingabe
Text2=Ausgabe
Code:
Dim x As Integer
Dim str1, str2 As String
Dim lastChar As String

For x = 1 To Len(Text1.Text)
    str1 = Mid$(LCase(Text1.Text), x, 1)
    str2 = Mid$(LCase(Text1.Text), x + 1, 1)
    If str1 <> str2 And lastChar <> str1 Then
        Text2.Text = Text2.Text & Mid$(Text1.Text, x, 1)
    End If
    lastChar = str1
Next

Grüßle Dragon78
 
Ja schön und gut, dank dir für dein Beitrag, allerdings lösst es nicht mein Problem den bei den Wort Hallo löscht es nämlich beide "l"-Zeichen außerdem, so wie ich das aus dem Code heraus erkenne prüft der code immer nur das aktuelle Zeichen mit dem folgenden Zeichen.

Das wiederrum bringt mir nix bei einen Wort wie z.B. Halelulya :)

=> Ziel solls doch sein das jedes Zeichen im gesamten text gesucht werden soll und dann entfernt werden :)

darum hatte ich auch die Überlegung mit den 2 Schleifen und nicht nur eine !
 
Code:
For a = 1 To Len(str2)
  temp = Mid(str2, a, 1)
  
    If InStr(1,str3 ,temp ) = 0 Then
  	str3 = str3 & temp
    End If

Next a

also das sollte dann jetzt futzen... den Teil von str1 in str2 hab ich mal weggelassen
des schaffst du dann schon^^

mfg

Jonas
 
Zurück