Zeichenfolge einlesen und Verändern

ExXxE

Grünschnabel
Hallo alle zusammmen,

Ich bin neu hier und habe gleich 2 Fragen. Kann noch nicht alt zu viel mit VB, also bitte rücksicht :)

1.
Wie kann ich Zeichenfolgen in einer TextBox einlesen und dann anschließend in veränderter form ausgeben....z.B.: Ich gebe "Hallo Welt" ein und es kommt "H4110 W317" aus einer anderen TextBox "raus" ?

2.
Wenn ich Musik so abspielen will,

Private Sub Command2_Click()
Load frmAbout
frmAbout.Show modus
Form1.Hide
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Call PlaySound("D:\Zensiert\Musik\Die Ärzte\Die Ärzte - Meine Freunde.mp3", 0)
End Sub

kommt beim Compilieren immer:
Compile Error:

Only comments my appear after End Sub, End Function, or Property

Woran liegt das ?


MFG
ExXxE
 
Zu 1)
Wenn du Buchstaben ersetzen willst, verwende die Funktion Replace():
Visual Basic:
Text1 = "Ich bin Doof!"
Text2 = Replace(Text1, "Doof", "Gut")
'In Text2 Steht jetzt: "Ich bin Gut!"
Du kannst einzelne Buchstaben aber auch ganze Sätze ersetzen. In so eine Fall das es mehrere Buchstaben sein sollen geht auch eine Schleife:
Visual Basic:
Text1 = "Hallo Welt!"
Text2 = "HaloWet"
Text3 = "H410W37"
For cnt = 1 To Len(Text3)
 Text1 = Replace(Text1, Mid(Text2, cnt, 1), Mid(Text3, cnt, 1))
Next cnt
MsgBox Text1

2)
Die Zeile
Visual Basic:
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
gehört immer ganz an den Anfang des Codes, noch vor der ersten Prozedur. Dein Code sollte also so aussehen:
Visual Basic:
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
'Hier noch alle anderen API-Deklarationen, die du brauchst.
'Erst dann die erste Prozedur:
Private Sub Command2_Click()
Load frmAbout
frmAbout.Show modus
Form1.Hide
Call PlaySound("D:\Zensiert\Musik\Die Ärzte\Die Ärzte - Meine Freunde.mp3", 0)
End Sub
Mach mal den RHirte-VB-Kurs durch, da lernst du die ganzen Grundlagen zu VB.


Der Doc!
 
Schonmal danke für die Antwort, aber ich meinte mit der ersten Frage eigentlich, wie man einzelne Buchstaben verändert, d.h. Wenn ich wieder was anderes eingabe verändern sich die Buchstaben zu Zahlen, die ich vorher festgelegt habe. Also egal was ich eingebe, es wird dann immer z.B. ein "A" zu einer "4", und ein "B" zu einer "8".

Und wenn ich:
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
ganz an den Anfang setzte kommt leider wieder ein Fehler.....

Compile Error:

Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as public members of objekt moduls

MFG
ExXxE
 
Eine jede Textbox hat das KeyPress-Ereignis. In diesem Ereignis kannst du die gedrückte Taste abfragen und ändern. Wenn du für ein A/a eine 4 machen willst, musst du so vorgehen:
Visual Basic:
Private Sub Text1_KeyPress(KeyAscii As Integer) 'Meine Textbox hier heißt Text1
 If KeyAscii = 65 Or KeyAscii = 97 Then KeyAscii = 52 '65 = A; 97 = a
 'Und weitere Abfragen zu den anderen Tasten, kannst du auch mit Select/Case machen
End Sub

Betr der Fehlermeldung, mein Fehler, in Formularen kannst du APIs nie Public sondern immer nur Private deklarieren:
Visual Basic:
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long


Der Doc!
 
Zurück