LinkedList durchsuchen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

sry das ich nicht alles gelesen habe aber es geht schneller.
Naja OK es kommt drauf an.

Code: Alles auswählen

Procedure FindElement(Element)

foreach List()
 if List()\Item = Element
   Prozedurereturn ListIndex(List())+1  : break
 endif
next

endprocedure

Ist das Ergebnis 0 ist es nicht gefunden worden
andernfalls gibt es die Listposition zurück
Zuletzt geändert von unix am 12.08.2005 17:03, insgesamt 1-mal geändert.
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Schon mal ausprobiert, ob das [c]Break[/c] ausgeführt wird? ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Auch wenn sein Break nicht ausgeführt wird, hat er doch irgendwo Recht! Du verläßt die ForEach schleife ja ohne Break, sondern mit ProcedureReturn, das könnte doch Probleme hervorrufen. Ob PB in diesem Fall alles wieder aufräumt? :o
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Du verläßt die ForEach schleife ja ohne Break, sondern mit
> ProcedureReturn, das könnte doch Probleme hervorrufen.
PB-Hilfe hat geschrieben: Ein Aufruf von ProcedureReturn verlässt umgehend die Prozedur, auch wenn
er innerhalb einer Schleife erfolgt.
> Ob PB in diesem Fall alles wieder aufräumt? :o

na, das hoffe ich doch sehr stark.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

Beim mir funct break bei for each

ihr hattet noch ein problem:

Code: Alles auswählen

Procedure.l FindElement(ItemToFind$) 
  ForEach myLinkedList() 
    If myLinkedList()\myString= sFilename$ 
      ProcedureReturn 1
    EndIf 
  Next      
  ProcedureReturn -1       ;Ab hier wird ein anderer wert zurückgegeben
EndProcedure                 ;-1 wird also immer das ergebnis sein!
[EDIT] passt doch nicht
sry Kiffi hab hilfe nicht gelsen
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Antworten