Seite 2 von 2

Verfasst: 12.08.2005 16:10
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

Verfasst: 12.08.2005 16:27
von Kiffi
Schon mal ausprobiert, ob das [c]Break[/c] ausgeführt wird? ;-)

Grüße ... Kiffi

Verfasst: 12.08.2005 16:35
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

Verfasst: 12.08.2005 16:41
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

Verfasst: 12.08.2005 16:58
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