| |
VB.NET - Ein- und UmsteigerRe: Maskierte Textbox | | | Autor: JimmyJo22 | Datum: 18.03.10 19:30 |
| Hey alles klar hat soweit geklappt,
nun die frage, ich habe jetzt z.b.
mal 1/9/3
dann mal
12/12/1034
o.ä.
strings die ich da in die box einlese und dann beareitet werden!
wie bekomme ich den die strings richtig eingelesen also mit der trennung immer nach / ? | |
Maskierte Textbox | | | Autor: JimmyJo22 | Datum: 18.03.10 15:41 |
| Hallo zusammen,
ich verusuche im moment eine textbox bzw eine maskedtextbox die "/" als Trennzeichen hat.
Im grunde so xx/xx/xxxx
man soll dann die xe ändern können aber die striche sollen fest sein also die Maske. Und dann würde ich gerne als String die komplette eingabe bekommen also z.b 12/12/1024, der string soll also auch die "/" enthalten.
Nur wie mache ich das? komme da nicht weiter.
MFG
JimmyJo | |
Re: Maskierte Textbox | | | Autor: keco | Datum: 18.03.10 15:59 |
| Eine MaskedTextBox verwenden. | |
Re: Maskierte Textbox | | | Autor: Manfred X | Datum: 18.03.10 16:45 |
| ... mit folgender Maske:
MaskedTextBox1.Mask = "AA\/AA\/AAAA" | |
Re: Maskierte Textbox | | | Autor: Manfred X | Datum: 18.03.10 20:01 |
| Hallo!
Wie sehen die Eingaben aus und
als was sollen Sie "richtig" gelesen werden?
Geht es ggf. nur um das Entfernen von Spaces
(bei optionalen Digit-Stellen in der Maske)?
Etwa so?
Label1.Text = MaskedTextBox1.Text.Replace(" ", "")
Beitrag wurde zuletzt am 18.03.10 um 20:02:34 editiert. | |
Re: Maskierte Textbox | | | Autor: JimmyJo22 | Datum: 18.03.10 20:38 |
| ALso ich lesen eine Datei aus mit mehreren werten z.b.
3/9/1
12/1/1234
/1/12/12
o.ä.
diese sollen dann in einer masked textbox landen der / bzw die 2 / sind pflicht nur will ich sozusagen die drei werte aus meinem original string nach dem / trennen und in die masked text box reinschreiben.
1. original textdatei: 76/1/28
2. string test=76/1/28
3. masked text box" / / "
und dann die werte 76 in den ersten abschnitt 1 in den zweiten und 28 in den dritten
Beitrag wurde zuletzt am 18.03.10 um 20:39:23 editiert. | |
Re: Maskierte Textbox | | | Autor: Manfred X | Datum: 19.03.10 05:42 |
| Hallo!
Die MaskedTextBox wird von links nach rechts
anhand der durch "Mask" festgelegten gültigen Zeichen gefüllt.
Zunächst muss man Trennzeichen, sowie Zahl und Länge der
Felder definieren und danach die Maske aufbauen - etwa so
Dim TrennZeichen As String = "/" 'Feld-Trennzeichen
Dim Fieldcount As Integer = 3 'Zahl der Felder
Dim Max_FieldLength(Fieldcount) As Integer 'Länge der Felder (Zeichenzahl)
Max_FieldLength(0) = 2
Max_FieldLength(1) = 2
Max_FieldLength(2) = 4
'Aufbau der entsprechenden Maske (hier: für Ziffern)
MaskedTextBox1.Mask = ""
For i As Integer = 0 To Fieldcount - 1
MaskedTextBox1.Mask &= _
Microsoft.VisualBasic.StrDup(Max_FieldLength(i), "9")
If i < Fieldcount - 1 Then _
MaskedTextBox1.Mask &= "\" & TrennZeichen
Next i Das Verarbeiten von Zeichenfolgen aus einer Textdatei, die
nicht formatiert durch ein Programm gefüllt worden ist,
bedarf einer genauen Schrittfolge.
Beim Lesen eines String aus der Datei muss die
Zahl der Felder anhand des Trennzeichens ermittelt
und ggf. korrigiert werden.
Ungültige Zeichen aus den Feldern entfernen
(hier: nur Ziffern werden erlaubt)
Danach muss die Zeichenlänge der einzelnen Felder
eingerichtet (hier: rechtsbündig) und der
anzuzeigende String aufgebaut werden
(wg. Demo Schritt für Schritt):
'Aus der Datei gelesener String (Beispiel)
Dim dat_str As String = "76/aaa1234/28/33"
'Zerlegung des String in Felder anhand der Trennzeichen
Dim dat_fields() As String = dat_str.Split(CChar(TrennZeichen))
If dat_fields.Length <> Fieldcount Then
'Ungültige Zahl der Felder -> Anhängen oder Abschneiden?
ReDim Preserve dat_fields(Fieldcount - 1)
End If
Const Ziffern As String = "0123456789" 'zulässige Zeichen
Dim istr As String
'Formatierung der Felder auf korrekte Länge
For i As Integer = 0 To Fieldcount - 1
'Zeichen, die keine Ziffern sind, ggf. entfernen
istr = String.Empty
If Not String.IsNullOrEmpty(dat_fields(i)) Then
For z As Integer = 0 To dat_fields(i).Length - 1
If Ziffern.Contains(dat_fields(i)(z)) Then
istr &= dat_fields(i)(z)
End If
Next z
dat_fields(i) = istr
Else
dat_fields(i) = String.Empty
End If
'zu kurze Strings verlängern
While dat_fields(i).Length < Max_FieldLength(i)
dat_fields(i) = " " & dat_fields(i)
End While
'zu lange Strings abschneiden
dat_fields(i) = _
dat_fields(i).Substring(0, Max_FieldLength(i))
Next i
'Aufbau des Anzeigestrings
Dim display_string As String = String.Empty
For i As Integer = 0 To Fieldcount - 1
display_string &= dat_fields(i)
Next i
MaskedTextBox1.Text = display_string Dieser Code entfernt - ohne Warnung - überzählige Felder
und ungültige/überzählige Zeichen aus dem Dateistring.
(Für "RegExer": Ich weiss, ich weiss ...) | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|