Text aus Textbox auslesen!

Aaaaaaaalso,

ich hab mir das ganze jetzt mal näher angeschaut, und bin schon recht stolz das du das alleine so weit hinbekommen hast. Ich kann dir mal zeigen was ich noch geändert habe:

Erstmal musst du die InStr-Werte nicht jedes mal in eine neue Variable schreiben, völlig unnötig. Du kanns dein InStr() so behandeln als wäre es der Wert der später bei der Durchführung ermittelt wird.

Beispiel:

Code:
  'Dein Code
  
  If InStr(Eingabe, "[") And InStr(Eingabe, "]") Then
  	 p1 = InStr(Eingabe, "[")
  	 p2 = InStr(Eingabe, "]")
  	 p3 = Mid(Eingabe, p1, p2 - p1)
  	 LblPosition.Caption = "Position " & p3 & "]"
  Else
  	 LblPosition.Caption = "Keine Angaben"
  End If
  
  'Mein Vorschlag
  
  If InStr(Eingabe, "[") And InStr(Eingabe, "]") Then
 		p3 = Mid(Eingabe, InStr(Eingabe, "["), InStr(Eingabe, "]") - InStr(Eingabe, "["))
  		LblPosition.Caption = "Position " & p3 & "]"
  Else
  		LblPosition.Caption = "Keine Angaben"
  End If

Dadurch sparst du dir natürlich auch ne Menge Variablen

Schau:
Code:
  'Deine Variablendeklarationen
  Dim Eingabe As String
  Dim p1 As Integer
  Dim p2 As Integer
  Dim p3 As String
  Dim m1 As Integer
  Dim m2 As Integer
  Dim m3 As String
  Dim k1 As Integer
  Dim k2 As Integer
  Dim k3 As String
  
  'und die die ich brauche
  
  Dim Eingabe As String
  Dim p3 As String
  Dim m3 As String
  Dim k3 As String

Und hier dein Code mit meinen Vorschlägen umgestellt:

Code:
  Dim Eingabe As String
  Dim p3 As String
  Dim m3 As String
  Dim k3 As String
  	
  Eingabe = txtEingabe.Text
  	
  If InStr(Eingabe, "[") And InStr(Eingabe, "]") Then
 		p3 = Mid(Eingabe, InStr(Eingabe, "["), InStr(Eingabe, "]") - InStr(Eingabe, "["))
  		LblPosition.Caption = "Position " & p3 & "]"
  Else
  		LblPosition.Caption = "Keine Angaben"
  End If
  	
  If InStr(Eingabe, "3.Wort") And InStr(Eingabe, "4.Wort") Then
  		m3 = Mid(Eingabe, InStr(Eingabe, "3.Wort"), InStr(Eingabe, "4.Wort") - _ 
  		InStr(Eingabe, "3.Wort"))
  		Lbl3Wort.Caption = m3
  Else
  		Lbl3Wort.Caption = "Keine Angaben"
  End If
  	
  If InStr(Eingabe, "4.Wort") And InStr(Eingabe, "5.Wort") Then
  		k3 = Mid(Eingabe, InStr(Eingabe, "4.Wort"), InStr(Eingabe, "5.Wort") - _ 
  		InStr(Eingabe, "4.Wort"))
  		Lbl4Wort.Caption = k3
  Else
  		Lbl4Wort.Caption = "Keine Angaben"
  End If

Das sieht doch schon besser aus oder? Das ganze könntest du evtl. noch durch "Schleifen" vollends verkürzen. Mit "Arrays" kannst du die Variablendeklaration sogar noch verkürzen.
Aber dich da mal zu informieren und rumzuprobieren überlass ich mal wieder dir ^^

Hoffe geholfen zu haben
 
Hallo,

ich brauchte dieses Beispiel auch.

Allerdings habe ich das Problem, dass bei meiner Ausgabe das erste Zeichen, in diesem Beispiel das "[" mit ausgegeben wird. Das möchte ich jedoch nicht.

Wie kann ich das ändern


Um es noch einmal zu erläutern: In dem o.g. Beispiel war es ja so, dass der Text zwischen einem "[" und "]" ausgegeben werden sollte.
Sagen wir mal: [tutorials.de] => tutorials.de
Bei mir ist es allerdings so: [tutorials.de] => [tutorials.de


Danke!
 
Zuletzt bearbeitet:
Kleiner Tipp am Rande:
Informier dich doch bitte erst was die Funktionen genau bewerkstelligen, dann weisste ganz schnell wo dein Fehler liegt. Ich würd mal auf die Schnelle sagen, du hast [ nicht als eischränkung, sondern einfach als string also "[" gesetzt, wodurch er dir halt deinen String auch ausschreibt.

Bischen mehr Motivation so einen kleinen Fehler selber zu finden. Erstens bringts dir mehr, zweitens kannste dann Stolz auf dich sein, dass du schon etwas alleine geschaft hast ;-)

Mfg
ziop :rolleyes:
 
also mein "text" sieht wie folgt aus: `s€KassennameKassennummer?VKNR‚VersichertennummerƒStatus +
-ergänzung…Vorname‡NachnameˆGeb.‰Straße‹PLZŒOrtGültig bisŽ;b‚

das ist die ausgabe einer krankenversichertenkarte mit hilfe eines lesegeräts. die ganzen sonderzeichen dienen als trenner und sind auf jeder kvk gleich.

jetzt will ich halt sagen wir mal den vornamen ausschneiden.

setze "…" als 1. wert und "‡" als 2. wert und bekomme als ausgabe "…Vorname", wobei es ja nur "Vorname" sein sollte.
 
Zuletzt bearbeitet:
hab's jetzt anders...

vname = Mid(eingabe, InStr(eingabe, "…") + 1, InStr(eingabe, "‡") - 1 - InStr(eingabe, "…"))

...und es läuft soweit!

vorher: vname = Mid(eingabe, InStr(eingabe, "…"), InStr(eingabe, "‡") - InStr(eingabe, "…"))


danke für die antworten!!
 
Um es noch einmal zu erläutern: In dem o.g. Beispiel war es ja so, dass der Text zwischen einem "[" und "]" ausgegeben werden sollte.
Sagen wir mal: [tutorials.de] => tutorials.de
Bei mir ist es allerdings so: [tutorials.de] => [tutorials.de

Bei mir wird auch [tutorials.de ausgegeben, aber das wollte ich auch nicht anders, weil nachher sollte sowieso [tutorials.de] da stehen und deswegen habe ich einfach noch ein ] drangehängt!
 
dignsag hat gesagt.:
Aaaaaaaalso,

ich hab mir das ganze jetzt mal näher angeschaut, und bin schon recht stolz das du das alleine so weit hinbekommen hast. Ich kann dir mal zeigen was ich noch geändert habe:

Erstmal musst du die InStr-Werte nicht jedes mal in eine neue Variable schreiben, völlig unnötig. Du kanns dein InStr() so behandeln als wäre es der Wert der später bei der Durchführung ermittelt wird.

Beispiel:

Code:
  'Dein Code
  
  If InStr(Eingabe, "[") And InStr(Eingabe, "]") Then
  	 p1 = InStr(Eingabe, "[")
  	 p2 = InStr(Eingabe, "]")
  	 p3 = Mid(Eingabe, p1, p2 - p1)
  	 LblPosition.Caption = "Position " & p3 & "]"
  Else
  	 LblPosition.Caption = "Keine Angaben"
  End If
  
  'Mein Vorschlag
  
  If InStr(Eingabe, "[") And InStr(Eingabe, "]") Then
 		p3 = Mid(Eingabe, InStr(Eingabe, "["), InStr(Eingabe, "]") - InStr(Eingabe, "["))
  		LblPosition.Caption = "Position " & p3 & "]"
  Else
  		LblPosition.Caption = "Keine Angaben"
  End If

Dadurch sparst du dir natürlich auch ne Menge Variablen

Schau:
Code:
  'Deine Variablendeklarationen
  Dim Eingabe As String
  Dim p1 As Integer
  Dim p2 As Integer
  Dim p3 As String
  Dim m1 As Integer
  Dim m2 As Integer
  Dim m3 As String
  Dim k1 As Integer
  Dim k2 As Integer
  Dim k3 As String
  
  'und die die ich brauche
  
  Dim Eingabe As String
  Dim p3 As String
  Dim m3 As String
  Dim k3 As String

Und hier dein Code mit meinen Vorschlägen umgestellt:

Code:
  Dim Eingabe As String
  Dim p3 As String
  Dim m3 As String
  Dim k3 As String
  	
  Eingabe = txtEingabe.Text
  	
  If InStr(Eingabe, "[") And InStr(Eingabe, "]") Then
 		p3 = Mid(Eingabe, InStr(Eingabe, "["), InStr(Eingabe, "]") - InStr(Eingabe, "["))
  		LblPosition.Caption = "Position " & p3 & "]"
  Else
  		LblPosition.Caption = "Keine Angaben"
  End If
  	
  If InStr(Eingabe, "3.Wort") And InStr(Eingabe, "4.Wort") Then
  		m3 = Mid(Eingabe, InStr(Eingabe, "3.Wort"), InStr(Eingabe, "4.Wort") - _ 
  		InStr(Eingabe, "3.Wort"))
  		Lbl3Wort.Caption = m3
  Else
  		Lbl3Wort.Caption = "Keine Angaben"
  End If
  	
  If InStr(Eingabe, "4.Wort") And InStr(Eingabe, "5.Wort") Then
  		k3 = Mid(Eingabe, InStr(Eingabe, "4.Wort"), InStr(Eingabe, "5.Wort") - _ 
  		InStr(Eingabe, "4.Wort"))
  		Lbl4Wort.Caption = k3
  Else
  		Lbl4Wort.Caption = "Keine Angaben"
  End If

Das sieht doch schon besser aus oder? Das ganze könntest du evtl. noch durch "Schleifen" vollends verkürzen. Mit "Arrays" kannst du die Variablendeklaration sogar noch verkürzen.
Aber dich da mal zu informieren und rumzuprobieren überlass ich mal wieder dir ^^

Hoffe geholfen zu haben

Ist es möglich, Das ich nach zwei Stellen im Text suche und alle Wörter (keine Zahlen) die zwischen diesen zwei Wörtern vorkommen, dass nach alles in Labels geschrieben wird und zwar immer so Wort1 + Zahl hinter Wort1, Wort2 + Zahl hinter Wort2 usw.?

Hat das wer verstanden?
 

Neue Beiträge

Zurück