Forum: Mikrocontroller und Digitale Elektronik Im Array suchen


von Richard D. (richyrich)


Lesenswert?

Hallo,

kann mir vielleicht jemand nen Tip geben, wie ich nach einer 
Zeichenfolge zB. "12345" in einem Array suchen kann!?
Es geht um Basic.

Gruß

von markus (Gast)


Lesenswert?

ich bin net der basic-erfahrene programmierer also entschuldige 
eventuelle syntax fehler...
aber wie wäre es amit

for each String in array{
      if(each.equals("1234")
         then tu_was();
      }

von Richard D. (richyrich)


Lesenswert?

Hallo Markus,

werds gleich mal versuchen....Thanks.

Muss nur noch mit Bascom Basic funktionieren.

Gruß

von André K. (andre-)


Lesenswert?

Const Maxint = 10

Dim Ar(maxint) As String * 5
Dim Suchstr As String * 8

Suchstring = "1234"

For I = 1 To Maxind
   If Ar(i) = Suchstr Then Exit For
Next


Ha! Ganz einfach... Und nun versuchst dus vielleicht nochmal, mit etwas 
mehr Infos... Was fuer ein Array z.B...

Beste Gruesse

von Richard D. (richyrich)


Lesenswert?

das hört sich ja verdammt gut an ;-)

ich habe ein Array mit ca.400 Zeichen im Format Hex.
Das Array nennt sich Key(j).
Im Endeffekt muss ich dieses Array durchsuchen, ob eine bestimmte 
Zeichenfolge vorkommt. Die gesuchte Zeichenfolge besteht aus 5 Zeichen.

Gruß

von André K. (andre-)


Lesenswert?

Hmpf... also nochmal.

... mit 400 Zeichen im Format Hex. Das verstehe ich so (willkuerlich 
gewaehlte Werte):

key(1) = "01"
key(5) = "EF"
bis
key(200) = "AB"

Das macht 400 Zeichen in Hex aber ich weiss nicht, ob das das ist, was 
du suchst.
Oder heisst es vielleicht key(5) = "8", also ohne fuehrende 0?

Schreib am besten mal etwas mehr als 2 Saetze zu deinem Projekt, denn so 
kommt damit niemand klar.

Beste Gruesse

von Richard D. (richyrich)


Lesenswert?

Hallo Andre,

also....mein Projekt zu beschreiben würde glaube ich den Rahmen hier 
sprengen...
Ein part davon ist, Daten von einem iButton zu lesen. Das auch wunderbar 
klappt. Diese Daten werden in ein Array eingelesen.
z.B: Key(1) = "31" für die Zahl 1
Wie gesagt die Zeichen mit 400 sind nur willkürlich gewählt...was ja 
eigenltich auch nichts zur Sache tut.
Auf jeden Fall muss in dem Array nach einer Zeichenfolge gesucht 
weden...wie schon beschrieben.
Natürlich muss die zu suchende Zahl auf im Hex-Format zur verfügung 
stehen.

Gruß

von D. W. (dave) Benutzerseite


Lesenswert?

Ich hab garkeine Ahnung von Basic, aber wie wärs einen Index i 
hochlaufen lassen bis laenge-4 und dann immer
das i-te, i+1-te...i+4-te Zeichen zusammenfügen und mit dem Suchstring 
vergleichen.

Noch schneller wäre es von 0 bis laenge-1 durchzugehen und nach dem 
ersten Zeichen des Suchstrings zu suchen. Wenn der gefunden wird, wird 
eins weiter nach dem zweiten geschaut, wenns da ist, nach dem dritten, 
sonst wieder nach dem ersten suchen. Hoffe du hast es verstanden.

von André K. (andre-)


Lesenswert?

Dim Datar(30) As Byte
Dim Datstr As String * 25 At Datar Overlay

Dim Lks As String * 5

Dim A As Byte


Datar(1) = $50
Datar(2) = $50
Datar(3) = $31
Datar(4) = $32
Datar(5) = $33
Datar(6) = $34
Datar(7) = $35
Datar(8) = $31


Lks = "12345"

Datar(30) = 0                                               'endnull. 
wichtig fuer instr()
A = Instr(1 , Datstr , Lks)

von Richard D. (richyrich)


Lesenswert?

@Andre,

vielen Dank für deine Hilfe!!
Genau das habe ich gesucht!!

Merci!!


Gruß

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
Noch kein Account? Hier anmelden.