tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
454
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Aug 2002
    Beiträge
    419
    Ok ich sollte heute in der Schule ein Programm schreiben was ein Monogram erstellt.

    Monogram = Vorname + Mittelname + Nachname
    als VMN
    Also die Initialien, das hat auch geklappt allerdings nur aus Zufall
    koennt ihr mir bitte den Code erlaeutern?

    'Monogram Excerise 5
    '10/31/02
    'Stefan Muderack
    Option Explicit

    Private Sub cmddone_Click()
    Unload Me
    End Sub

    Private Sub cmdshow_Click()
    Dim strname As String
    Dim strinitials As String
    Dim intposition As Integer

    strname = txtname
    strname = StrConv(strname, vbProperCase)
    strinitials = Left(strname, 1)

    intposition = InStr(1, strname, " ") + 1
    strinitials = strinitials & Mid(strname, intposition, 1)
    intposition = InStr(9, strname, " ") + 1
    strinitials = strinitials & Mid(strname, intposition, 1)
    lblanswer = strinitials

    End Sub
     

  2. #2
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Code :
    1
    2
    3
    
    Private Sub cmddone_Click() 
    Unload Me 
    End Sub
    beim klicken auf die schaltfläche namens "cmddone" wird das aktuelle formular (immer über Me anzusprechen) entladen.

    Code :
    1
    2
    3
    
    Dim strname As String 
    Dim strinitials As String 
    Dim intposition As Integer
    variablendefinitionen. dazu muss man nicht unbedingt was erzählen.

    Code :
    1
    2
    3
    
    strname = txtname 
    strname = StrConv(strname, vbProperCase) 
    strinitials = Left(strname, 1)
    zuweisung vom inhalt einer textbox in eine stringvariable und kopieren des ersten zeichens von links in die variable strinitials.

    Code :
    1
    2
    3
    4
    5
    
    intposition = InStr(1, strname, " ") + 1 
    strinitials = strinitials & Mid(strname, intposition, 1) 
    intposition = InStr(9, strname, " ") + 1 
    strinitials = strinitials & Mid(strname, intposition, 1) 
    lblanswer = strinitials
    erstes leerzeichen in dem namen suchen, und dessen position merken. dann das erste zeichen nach dem leerzeichen kopieren und an die variable strinitials anhängen. und dann machst du das ganze nochmal für den nachnamen.

    wenn sonst noch fragen dazu bestehen, kannst du dich ja nochmal melden.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  3. #3
    Registriert seit
    Aug 2002
    Beiträge
    419
    warum klappt das aber da mit den intposition beim Nachnamen nur mit 9?
    Das verstehe ich nicht, warum es z.b. nicht mit 8 klappt.

    Kannste mir das auch noch sagen?



    mfg

    Muffin


    p.s. Danke erstmal fuer die schnelle Hilfe
     

  4. #4
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    die instr-funktion sucht nach dem ersten vorkommen eines bestimmten zeichens, dass an die funktion übergeben wird. die übergebenen informationen sind dabei:
    - start: ab dieser stelle im suchstring wird gesucht.
    - string1: der string, in dem gesucht werden soll.
    - string2: der string, der gesucht werden soll.

    wenn du anstelle der 9 also eine 8 als start angibst, wird ab dem achten zeichen im string gesucht.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  5. #5
    Registriert seit
    Aug 2002
    Beiträge
    419
    Original geschrieben von asphyxia
    die instr-funktion sucht nach dem ersten vorkommen eines bestimmten zeichens, dass an die funktion übergeben wird. die übergebenen informationen sind dabei:
    - start: ab dieser stelle im suchstring wird gesucht.
    - string1: der string, in dem gesucht werden soll.
    - string2: der string, der gesucht werden soll.

    wenn du anstelle der 9 also eine 8 als start angibst, wird ab dem achten zeichen im string gesucht.

    Danke

    und wie koennte ich es machen das nach dem Mittelnamen das Leerzeichen gemerkt wird und ich da dann nicht auf den Zufall angewiesien bin?

    Also das er mir zu 100% das Initial vom Nachnamen richtig anzeigt.

    mfg

    Muffin
     

  6. #6
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    ich an deiner stelle würde das sowieso nicht instr, sondern mit split machen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Dim Name As String
    Dim Initialen() As String
    Name = "Vorname M. Nachname"
    Initialen = Split(Name, " ")
    MsgBox Left(Initialen(0), 1) 'erster Buchstabe vom Vorname
    MsgBox Left(Initialen(1), 1) 'erster Buchstabe vom Mittelinitial
    MsgBox Left(Initialen(2), 1) 'erster Buchstabe vom Nachnamen

    das funktioniert so ähnlich, wie die funktion explode aus php (falls dir das irgendwas sagt). damit wird dein string an den leerzeichen aufgeteilt und jeder teil in ein array geschrieben. mit der left-funktion holst du dir dann das erste zeichen aus dem jeweiligen teil.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 13.01.07, 20:42
  2. Antworten: 1
    Letzter Beitrag: 30.10.05, 13:29
  3. Antworten: 3
    Letzter Beitrag: 20.02.05, 20:58
  4. Antworten: 3
    Letzter Beitrag: 22.04.03, 13:10
  5. Code Erlaeuterung
    Von Muffinmampfer im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 08.01.03, 18:52