IYTI Geschrieben 5. Februar 2007 Teilen Geschrieben 5. Februar 2007 Hallo, ich schreibe morgen eine EDV Klausur und mache Übungsaufgaben zu VB folgende Aufgabenstellung: ///// Schreiben Sie ein Funktionsunterprogramm, dass die Wörter eines Satzes zählt. Schreiben Sie ferner eine kleine Prozedur, mit der das Funktionsunterprogramm getestet wird. ///// mein bisheriger Ansatz: Sub wörter() Dim satz As String Dim liste As String Dim leerzeichen As String Dim element As String satz = InputBox("Bitte geben sie ihren Satz ein") leerzeichen = " " liste = Split(satz, leerzeichen) end sub wie kann ich jetzt am besten die Wörter zählen? Programmiere mit Excel also bitte berücksichtigen (ohne Form etc.) nur Inputboxen und so Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 5. Februar 2007 Teilen Geschrieben 5. Februar 2007 Split gibt keinen String, sondern ein Array zurück. Mit Ubound kannst du dazu den größten erlaubten Index erfragen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IYTI Geschrieben 5. Februar 2007 Autor Teilen Geschrieben 5. Februar 2007 größten erlaubten index? sry hab bisher nur die absoluten Grundlagen von visual basic drauf wie variablen difinieren, hier und da mal ne schleife, if anweisung etc ,.. kannst du das für mich verständlicher ausdrücken? vllt ein beispiel? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 5. Februar 2007 Teilen Geschrieben 5. Februar 2007 wie Klotzkopp schon erwähnt hat: du darfst "liste" nicht als datentyp "String" definieren, da die funktion Split als ergebnis keinen String, sondern ein Array (oder Variant-Array) liefert - abhängig von der nicht angegebenen verwendeten VB-version. weiters soll laut aufgabenstellung eine funktion ("Funktionsunterprogramm"), keine prozedur ("Sub") erarbeitet werden. erstere gibt normalerweise ein ergebnis zurück - es ist anhand der aufgabe anzunehmen, dass damit die anzahl der wörter des satzes zurückgegeben werden sollen, damit die aufrufende "kleine Prozedur" ("Sub") dies auswerten kann. die weiters erwähnte funktion Ubound liefert dir die anzahl der elemente (wörter) in einem array zurück. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IYTI Geschrieben 5. Februar 2007 Autor Teilen Geschrieben 5. Februar 2007 ich habe doch geschrieben das ich mit excel programmiere, keine ahnung was das für ne version ist. Studiere maschinenbau da ist EDV nur dafür da das mal das mal gehört hat. hab auch keinen blassen schimmer was arrays sind !? nie gemacht danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 5. Februar 2007 Teilen Geschrieben 5. Februar 2007 Dim liste As String liste = Split(satz, leerzeichen) wie gesagt, du kannst daten eines Array nicht in den datentyp String zwängen. was du bekommst, ist ein fehler, dass VB(A) die datentypen nicht umwandeln kann. verwende ein array - welches mit einem variablennamen und abschliessenden klammern '()' deklariert wird, oder verwende ein Array vom typ Variant. Sub wörter() meiner meinung nach ist hier eine funktion erfoderlich, keine prozedur. persönlich finde ich ausserdem umlaute im funktionen und variablennamen unschön. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IYTI Geschrieben 5. Februar 2007 Autor Teilen Geschrieben 5. Februar 2007 ich hab das jetzt so gemacht: Sub splitstring() Dim Text As String, Punkt As String Dim Position As Integer, Wörter As Integer, Zeichen As Integer Text = InputBox("Bitte Text eingeben und mit einem Punkt abschließen!") Position = 1 Wörter = 1 Zeichen = 0 Text = Trim(Text) Do Until Punkt = "." Punkt = Mid(Text, Position, 1) Position = Position + 1 If Punkt = " " Then Wörter = Wörter + 1 Else Zeichen = Zeichen + 1 End If Loop MsgBox ("Es sind " & Wörter & " Wörter im Satz enthalten, außerdem " & Zeichen & " Zeihen mit Punkt und ohne Leerzeichen.") End Sub das geht auch und ganz ohne arrays natürlich mit ein paar einschränkungen (Punkt am ende, nur ein leerzeichen zwischen den Wörtern etc.) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 5. Februar 2007 Teilen Geschrieben 5. Februar 2007 dir ist aber schon klar dass das coding fürn Popo ist, oder? mach das lieber mit split, da haste was ordentliches... oder frage die wörter selber ab, aber bitte nicht die leerzeichen und was soll das mit dem punkt? wenn die position größer ist als die länge des strings ist schluss... nicht wenn ein punkt kommt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IYTI Geschrieben 5. Februar 2007 Autor Teilen Geschrieben 5. Februar 2007 lol ja sicherlich ist die programmierung fürn mors aber ich bin halt auch kein Fachinformatiker. für morgen solls wohl reichen hoffe ich mal. aber das mit den Längen ist ne gute Idee Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.