Hallo, ich möchte in Basic eine Zeichenkette durchsuchen und habe dafür den befehl Str_SubStr mit dieser funktion wird eine Char Array durchsucht. und anschließend wird falls der gesuchte wert gefunden wird die Positon ausgegeben nur ich weiß nicht wohin, so wird der Befel in der Hilfer erklärt: Und ich möchte gerne wissen wo die antwort hin kommt wenn der Text gefunden wird! Sub Str_SubStr(ByRef source As Char,ByRef search As Char) As Integer Beschreibung Ein String search wird im String source gesucht. Wird die gesuchte Zeichenkette gefunden, so wird ihre Position zurückgegeben. Parameter source String der durchsucht wird search Zeichenkette die gesucht wird Rückgabewert Position des Suchstrings in der untersuchten Zeichenkette -1 sonst
Die Frage hast Du Dir schon selbst beantwortet: Rückgabewert Position des Suchstrings in der untersuchten Zeichenkette Bist Du Dir sicher, daß die Datentypen korrekt sind? Sub Str_SubStr(ByRef source As Char,ByRef search As Char) As Integer beschreibt eine Funktion, der zwei einzelne Zeichen ("Char") übergeben werden und die eine Ganzzahl ("Integer") zurückgibt. Da sind keine Arrays oder Strings im Spiel.
Das hab ich so aus der Hilfe heraus kopiert! das source und search ist jeweils ein Char Array! Ich versteh nicht ganz wie ich mir die Frage selber beantwortet haben? Ich möchte aus einer langen Zeichenkette (source) durchsuchen und eine schaun ob eine bestimmte Zeichenkette vorhanden ist(search) nur wie weiß ich dann wenn der Befehl ausgeführt wurde ob die Zeichenkette (sehrch) in (source) vorhanden ist?? Ich möchte das dann irgendwie mit eine IF abfrage machen damit ich eine Aktion ausführen kann wenn die Zeichekette search in source vorhanden ist! mfg Christoph
Da muss noch irgendwas in der Hilfe stehen: <Zitat> Ein String search wird im String source gesucht. Wird die gesuchte Zeichenkette gefunden, so wird ihre Position zurückgegeben. </Zitat> Es wird immer irgendwas zurückgegeben. Wenn der String gefunden wird, dann wird seine Position zurückgegeben. Wird er nicht gefunden, dann wird normalerweise ein Fehlercode zurückgegeben. Der ist meist 0 oder -1. Wenn du also in der Hilfe nichts darüber findest, dann probier es doch einfach aus: Nimm einen bekannten String und lass einen Suchstring darin suchen. Jetzt schaust du einfach den Returnwert an wenn der Suchstring enthalten ist und wenn er nicht enthalten ist. Mit diesem in 2 Minuten durchführbaren Test solltest du eigentlich raus kriegen, wie das funktioniert.
Danke! es hat funktioniert!! eine frage hab ich noch das source will ich von der seriellen Schnittstelle emfpangen ich hab da einen Befehl wo ich Bytweise etwas von der seriellen Schnittstelle empfangen habe aber wie übergib ich das Byte an ein Array?? Weil ich möchte ja eine ganze Zeichenkette in ein Array schreiben das ist der Befehl Sub Serial_ReadExt(serport As Byte) As Word Beschreibung Ein byte wird von der seriellen Schnittstelle gelesen. Im Gegensatz zu Serial_Read(), kehrt die Funktion auch dann sofort zurück, wenn kein Zeichen in der seriellen Schnittstelle ist. In diesem Fall wird der Wert 256 (0x100) zurückgegeben. Parameter serport Schnittstellennummer (0 = 1.serielle, 1 = 2.serielle etc..) Rückgabewert empfangenes byte aus der seriellen Schnittstelle mfg Christoph
Christoph wrote: > > eine frage hab ich noch das source will ich von der seriellen > Schnittstelle emfpangen ich hab da einen Befehl wo ich Bytweise etwas > von der seriellen Schnittstelle empfangen habe aber wie übergib ich das > Byte an ein Array?? Die Frage zieht einen weiten Kreis. Die Frage ist nämlich, woher weist du eigentlich, dass dein String jetzt zu Ende ist? Mit anderen Worten: Wenn du ein Zeichen empfängst, gehört das noch zum String oder nicht oder fängt vielleicht schon der nächste String an. Du musst dir also mit dir selbst ausmachen, wie du Strings beendest. Gebräuchlich ist zb. die Verwendung von 'Return' (also der Enter-Taste) zur Kennzeichnung des Strings. Man spricht in diesem Fall dann vom zeilenweisen Einlesen, da der String dann eine komplette 'Eingabezeile' enthält. Wobei 'Zeile' relativ willkürlich definiert ist: von einem Return bis zum nächsten. Wenn du also ein Byte empfängst: dann testest du das Byte zuallererst mal darauf ob das ein 'Return' ist. Wenn nein, dann handelt es sich um ein Byte das noch zum String gehört und du hängst es an den String an. Basic hat normalerweise schöne Funktionen dafür. Meist heissen die Append oder so, manchmal kann man einfach mit + ein Zeichen an den String anhängen. War das Zeichen aber ein 'Return', dann ist der String soweit fertig und kann ausgewertet werden. > > Ein byte wird von der seriellen Schnittstelle gelesen. Im Gegensatz zu > Serial_Read(), kehrt die Funktion auch dann sofort zurück, wenn kein > Zeichen in der seriellen Schnittstelle ist. In diesem Fall wird der Wert > 256 (0x100) zurückgegeben. Aha. Das heist du hast noch einen Sonderfall. Diese Read Funktion wartet nicht, sondern teilt dir mit, dass nichts vorliegt. Also ein if mehr.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.