Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Dorftrottel gesperrt

Anmeldungsdatum: 23.04.2005 Beiträge: 97 Wohnort: Welt
|
Verfasst am: 09.05.2005, 20:39 Titel: Hilfe bei Buchstaben Counter |
|
|
Salve,
ich darf eure Hilfe ma kurz in anspruch nehmen?
Weiß jemand wie ich in Visual Basic das so mach, dass
wnn man in ner InputBox ein Wort schreibt das ,dass dann
zählt z.b Hallo 2xl , 1xh , 1xa , 1xo und das dann in ner Zahl stpeichert?
Also z.B Hallo
wäre dann
1121
oder
Kassette
11222
und dass dann speichert in
nZahl1 usw.
Thanx _________________ Euer Dorftrottel!
Unser Name ist unser Auftrag! 
Zuletzt bearbeitet von Dorftrottel am 19.05.2005, 15:57, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.05.2005, 20:42 Titel: |
|
|
Da musst du den textbox.text auslesen, mit ner for...nextz schleife mit MID(text$,start,1) den buchstaben auslesen und dann DO:LOOP UNTIL Buchstabe <> AltBuchstabe
is jetzt net komplett...wenn klein-/großschreibung nicht beachtet werden soll,. musst du noch ucase oder lcase benutzen  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 09.05.2005, 21:30 Titel: |
|
|
Hier mein Ansatz:
Code: |
Dim ASCII(0 TO 255) AS Integer
Text$ = TextBox1.Text
For i = 1 TO Len(Text$)
wert = Asc(Mid$(Text$, i, 1))
ASCII(wert) = ASCII(wert) + 1
Next i
|
Jeder Eintrag im Feld ASCII entspricht dem Zeichen des entsprechenden
ASCII-Codes.
jb |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 12.05.2005, 16:03 Titel: |
|
|
und das ganze am besten in einer Sub txtDeineBox_Change, damit es sofort gezählt wird, sobald du etwas eingibst.
Anderer Ansatz wäre via txtDeineBox_Keypress (Ascii AS INTEGER)
Hier kannst du einfach schreiben:
Buchst(Ascii) = Buchst(Ascii) + 1
Dazu muss Buchst(255) natürlich erst mal deklariert sein.
Nachteil: Bei Backspace wird Buchst( um eins erhöht, anstatt einen Buchstaben wieder herauszulöschen... _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
Dorftrottel gesperrt

Anmeldungsdatum: 23.04.2005 Beiträge: 97 Wohnort: Welt
|
Verfasst am: 12.05.2005, 20:36 Titel: |
|
|
Hi leuds,
Was is da falsch?
Ich steh grad voll auf'm Schlauch.
Ich probiere das es den ASCII Code anzeigt aber..
funzt ned..
Code: |
Private Sub Text1_Change()
End Sub
Sub txtDeineBox_Change()
Dim ASCII(0 To 255) As Integer
Text$ = Text1_Change
For i = 1 To Len(Text$)
wert = Asc(Mid$(Text$, i, 1))
ASCII(wert) = ASCII(wert) + 1
Next i
End Sub
Private Sub Command1_Click()
Cls
30 Print ASCII
End Sub |
_________________ Euer Dorftrottel!
Unser Name ist unser Auftrag!  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 12.05.2005, 21:25 Titel: |
|
|
Es muss nicht
Code: |
Text$ = Text1_Change
|
heißen, sondern
jb |
|
Nach oben |
|
 |
Dorftrottel gesperrt

Anmeldungsdatum: 23.04.2005 Beiträge: 97 Wohnort: Welt
|
Verfasst am: 12.05.2005, 21:36 Titel: |
|
|
Zitat: |
Es muss nicht
Code:
Text$ = Text1_Change
heißen, sondern
Code:
Text$ = Text1.Text
|
Dass hat ich ja vorher und da gings auch nicht.  _________________ Euer Dorftrottel!
Unser Name ist unser Auftrag!  |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 12.05.2005, 21:46 Titel: |
|
|
Hallo.
Der bisherige Quellcode kann aus verschiedenen Gründen nicht funktionieren, allein schon weil DIM in VB nur in der jeweiligen Sub gilt. Dein ASCII Array kannst du also nicht in mehreren Subs benutzen, wenn du es mit DIM anlegst.
Naja, dann wollen wir das Problem doch mal lösen... Zunächst tust du einen Button, eine Textbox und ein List-Element auf die Form und lässt dann diesen Wundercode auf dich einwirken...
Code: | Private Nr(255) AS INTEGER
Private Sub Command1_Click()
If Text1.Text="Kein Text eingegeben!", vbexclamation+vbokonly, "Autsch!": Exit Sub
Dim i As Integer
For i = 0 TO 255
Nr(i)=0
Next i
Dim bst AS INTEGER
For i = 1 TO LEN(Text1.Text)
bst = ASC(MID$(Text1.Text,i,1))
Nr(bst)=Nr(bst)+1
Next i
List1.Clear
For i = 0 TO UBOUND(Nr)
List1.AddItem CHR$(i)+" kommt "+LTRIM$(STR$(Nr(i)))+"x vor."
Next i
Form1.Refresh
End Sub |
So, das hab ich jetzt gerade im Eingabefenster geschrieben. Wer Fehler findet darf sie behalten...
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Zuletzt bearbeitet von Sebastian am 12.05.2005, 21:49, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 12.05.2005, 21:47 Titel: |
|
|
Dann schreib anstatt
besser
Code: |
For i = 1 To 255
Print "Das Zeichen mit dem ASCII-Code "; RTrim$(LTrim$(Str$(i))); ": "; RTrim$(LTrim$(Str$(Ascii(i))))
Next i
|
In deinem Code gibst du ja nur die Variable ASCII aus; mit dem Feld Ascii()
hat diese allerdings herzlich wenig zu tun
Außerdem solltest du vor Print besser noch "Me." schreiben, also
jb |
|
Nach oben |
|
 |
Dorftrottel gesperrt

Anmeldungsdatum: 23.04.2005 Beiträge: 97 Wohnort: Welt
|
Verfasst am: 13.05.2005, 07:32 Titel: |
|
|
Bei der Zeile
Code: |
If Text1.Text = "Kein Text eingegeben!", vbexclamation+vbokonly, "Autsch!": Exit Sub
|
Sagt das Programm immer
Zitat: |
COMPILE ERROR
Expected: Then or GoTo
|
Aber ich glaube wenn ich da GoTo hinpflanze dann
geht es erstrecht nich. _________________ Euer Dorftrottel!
Unser Name ist unser Auftrag!  |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 13.05.2005, 16:03 Titel: |
|
|
Hast du meinen Tip mal ausprobiert? Daran sollte es nämlich liegen.
jb |
|
Nach oben |
|
 |
Dorftrottel gesperrt

Anmeldungsdatum: 23.04.2005 Beiträge: 97 Wohnort: Welt
|
Verfasst am: 13.05.2005, 19:21 Titel: |
|
|
@Sebastian
Jupiiiiiii es geht!!
Nur kann ich auch machen dass man in 2 TextBoxen
was eingibt und das es dann nur Buchtaben (nur von A-Z)
liest und die Zahl der ersten Box in wort1$
und die der zweite Box in wort2$ speichert? _________________ Euer Dorftrottel!
Unser Name ist unser Auftrag!  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 13.05.2005, 19:36 Titel: |
|
|
Dann mach einfach
Code: |
Dim ASCII(1 To 2, Asc(A) To Asc(Z))
|
Wobei der erste Index der zu wählenden Textbox entspricht.
Wo lag denn jetzt der Fehler?
jb |
|
Nach oben |
|
 |
Dorftrottel gesperrt

Anmeldungsdatum: 23.04.2005 Beiträge: 97 Wohnort: Welt
|
Verfasst am: 15.05.2005, 11:44 Titel: |
|
|
Hi Leude,
bin grade in nem Internet Caffe und wollt ma fragen
ob man auch machen kann das es jede eizelne Ziffer
abspeichert .
Dorftrottel _________________ Euer Dorftrottel!
Unser Name ist unser Auftrag!  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 15.05.2005, 14:48 Titel: |
|
|
Also ein bisschen kannst du ja auch mitdenken.
Wenn er nur auf Ziffern reagieren soll, muss er testen, ob der
ASCII-Code des momentan gescannten Zeichens >= dem von 0, und <= dem von 9 ist.
Wie du jetzt Zahlen und Buchstaben kombinierst, kannst du dir bestimmt
selber erarbeiten.
jb |
|
Nach oben |
|
 |
Dorftrottel gesperrt

Anmeldungsdatum: 23.04.2005 Beiträge: 97 Wohnort: Welt
|
Verfasst am: 18.06.2005, 09:05 Titel: |
|
|
Nö )) _________________ Euer Dorftrottel!
Unser Name ist unser Auftrag!  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 18.06.2005, 11:04 Titel: |
|
|
OK. Dann scannst du halt jeden Buchstaben unter dem Gesichtspunkt, ob
es eine Zahl ist oder nicht, ab.
Code: |
Dim Zahl(0 To 9) As Integer
Text$ = Text1.Text
For i = 1 To Len(Text$)
Select Case Mid$(Text$, i, 1)
Case "0" To "9"
Zahl(Val(Mid$(Text$, i, 1))) = Zahl(Val(Mid$(Text$, i, 1))) + 1
End Select
Next i
|
jb |
|
Nach oben |
|
 |
|