HIVE-Project

Retro Style Eigenbau Computer mit Parallax Propeller
Aktuelle Zeit: So 31. Mai 2020, 20:17

Alle Zeiten sind UTC [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Suchen eines Strings in einem String
BeitragVerfasst: Do 22. Nov 2018, 14:56 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2615
Hallo,
bei strcomp(@Str1, @Str2) sind beide Strings gleichlang und haben die gleiche Zeichenfolge.

Ich suche aber so was:

pos := strcomp(@Str1, @Str2)

Der String @Str2 wurde an Position n in @Str1 gefunden.

gibt es da was? Ich denke da muss ich was machen.

Aus disen Teilen müsste sich was machen lassen
Code:
''PRI os_cmdinput | charc                                 'sys: stringeingabe eine zeile
''funktionsgruppe               : sys
''funktion                      : stringeingabe eine zeile
''eingabe                       : -
''ausgabe                       : -
''variablen                     : tib     - eingabepuffer zur string
''                              : tibpos  - aktuelle position im tib
  ....
  tibpos := 0                                           'tibposition auf anfang setzen <<== in INNI

  ....
  repeat until (charc := com.rxcheck) == $0D            'Serielle daten einlesen bis return <<=======
    if (tibpos + 1) < OS_TIBLEN                         'zeile noch nicht zu lang?
          tib[tibpos++] := charc                        'zeichen speichern
  tib[tibpos] := 0                                      'string abschließen

''PRI os_cmdint                                           'sys: kommandointerpreter
''funktionsgruppe               : sys
''funktion                      : kommandointerpreter; zeichenkette ab tibpos wird als kommando interpretiert
''                              : tibpos wird auf position hinter token gesetzt
''eingabe                       : -
''ausgabe                       : -
''variablen                     : tib     - eingabepuffer zur string
''                              : tibpos  - aktuelle position im tib

if tib[tibpos]
  repeat                                                'kommandostring kopieren
    cmdstr[tibpos] := tib[tibpos]                       
    tibpos++
  until (tib[tibpos] == ios#CHAR_SPACE) or (tib[tibpos] == 0) 'wiederholen bis leerzeichen oder stringende
  cmdstr[tibpos] := 0                                   'kommandostring abschließen
  tibpos := 0                                           'tastaturpuffer zurücksetzen
  tib[0] := 0

''PRI os_cmdexec(stradr)                                  'sys: kommando ausführen
{{os_smdexec - das kommando im übergebenen string wird als kommando interpretiert
  stradr: adresse einer stringvariable die ein kommando enthält}}
if     strcomp(@cmdstr,@cmd14)                           'mkdir - verzeichnis erstellen
       ....
elseif strcomp(@cmdstr,@cmd15)                           'rename - datei/verzeichnis umbenennen
       ....
elseif strcomp(@cmdstr,@cmd16)                           'format - sd-card formatieren
      ....

DAT ''------------------------------------------------- Kommandostrings
cmd14   byte  "mkdir",0
cmd15   byte  "rename",0
cmd16   byte  "format",0

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo


Nach oben
 Profil  
 
BeitragVerfasst: Do 22. Nov 2018, 18:08 
Offline
Benutzeravatar

Registriert: Fr 27. Aug 2010, 14:48
Beiträge: 2034
Wohnort: Wrong Planet
Schau Dir mal "findString(stringToSearch, stringToFind)" in [OBEX] ASCII0_STREngine_1.spin an.

Das liefert zwar die Adresse des zu findenden Strings im Gesamtstring, aber das auf Zurückgeben der Position umstricken ist simpel (z.B. Adressendifferenz zwischen Fundstelle und Gesamtstring).

_________________
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"Stop slavery! Free all mitochondria!" — Yeti.
"Vrijdag voor VT100!" — Yeti.
"There is no PLANET-B!" — ???


Nach oben
 Profil  
 
BeitragVerfasst: Do 22. Nov 2018, 18:11 
Offline
Benutzeravatar

Registriert: So 6. Sep 2009, 11:18
Beiträge: 1003
Moin moin!
Kuck an, war Yeti schneller :
Schau mal in dieser Bibliothek : http://obex.parallax.com/sites/default/ ... ine_1.spin
so mittig im Programm gibt es "PUB findString(.....)"
Die lib finde ich sehr hilfreich.
Gruß
TuxFan

PS.: Ich glaube die Addresse ist die Position des gesuchten Strings. Beginn ist glaub ich 0. Ist jetzt auch wieder ein paar tage her das ich das benutzt hab.

_________________
Mir fehlen die Worte.......


Nach oben
 Profil  
 
BeitragVerfasst: Do 22. Nov 2018, 18:24 
Offline
Benutzeravatar

Registriert: Fr 27. Aug 2010, 14:48
Beiträge: 2034
Wohnort: Wrong Planet
TuxFan hat geschrieben:
Kuck an, war Yeti schneller
Ich hab bei ein paar erfolglosen Versuchen das "mal eben schnell" selbst zusammenzutippern feststellen müssen, daß ich irgendwie heute nicht in Strings-mit-Spin-Stimmung war, fand dann auch nicht schnell genug sowas in den TriOS-Quellen und erst dann fiel mir wieder die OBEX ein...

...nich wirklich mein Tag heute... hatte vermutlich 'ne Überdosis Real-Life...

_________________
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"Stop slavery! Free all mitochondria!" — Yeti.
"Vrijdag voor VT100!" — Yeti.
"There is no PLANET-B!" — ???


Nach oben
 Profil  
 
BeitragVerfasst: Do 22. Nov 2018, 18:51 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2615
Maaaan das Teil hab ich mir heute in der Pause angesehen.
Hier mit bestelle ich mir eine gelbe Armbinde mit 3 schwarzen Gänsen.

Für Gansblinde eben. :SCHREIEN

Danke euch beiden.

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo


Nach oben
 Profil  
 
BeitragVerfasst: Do 22. Nov 2018, 19:01 
Offline
Benutzeravatar

Registriert: Fr 27. Aug 2010, 14:48
Beiträge: 2034
Wohnort: Wrong Planet
PIC18F2550 hat geschrieben:
Für Gansblinde eben. :SCHREIEN
Sowas kann ich auch primstens.
Willkommen im Club!

_________________
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"Stop slavery! Free all mitochondria!" — Yeti.
"Vrijdag voor VT100!" — Yeti.
"There is no PLANET-B!" — ???


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de