Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Prüfen ob Wert in einem Array existiert?
Wolle92 - Di 02.09.08 20:28
Titel: Prüfen ob Wert in einem Array existiert?
Hallo,
ich weiß, ist ne ziemlich simple Frage, aber ich habe grade keinen Plan...
Wie kann ich überprüfen ob ein bestimmter Wert innerhalb eines Arrays vorhanden ist?
Danke schonmal,
Wolle
Narses - Di 02.09.08 20:31
Titel: Re: Prüfen ob Wert in einem Array existiert?
Moin!
Wolle92 hat folgendes geschrieben: |
| Wie kann ich überprüfen ob ein bestimmter Wert innerhalb eines Arrays vorhanden ist? |
Die Elemente durchlaufen und abbrechen, wenn du es gefunden hast. ;)
Oder soll es
effizient sein? Dafür sind allerdings evtl. ein paar Voraussetzungen nötig. :nixweiss:
cu
Narses
Wolle92 - Di 02.09.08 20:32
Effizient sollte es sein, ja...
Voraussetzungen in wiefern??
Hidden - Di 02.09.08 20:34
Hi,
[[[[Also das hättest du dir nun auch selber überlegen können, du willst doch bloß Code abfischen und nicht selbst nachdenken :roll: ]]]]
Oh, hi Wolle. Gut, wenn man vorher den Threadsteller ansieht :lol:
Naja entweder du nimmst ein Set(bis max. 256 Bestandteile) oder so: for Array do if Wert then blabla break;
PS: Merkt man, wie viel Mühe ich mir mit meinem Pseudocode gemacht habe? :nut:
E: Gausi meint eventuell, das Array vorsortiert im Speicher zu haben, etc. für solche Sachen müsste man aber mehr über die Natur der Sache wissen.
mfG,
Wolle92 - Di 02.09.08 20:37
Dann schreib ich mir da extra noch ne Prozedur für, weil das nämlich relativ kompakt sein soll, weils doch nen Paarmal ausgeführt wird... dachte es gibt vielleicht schon was fertiges in Pascal dafür...
btw: Kann mir wer meine Deutsch-Hausaufgaben machen?? :roll: :roll:
Öhm... das ist nicht Gausi sondern Narses...
Hidden - Di 02.09.08 20:38
Wolle92 hat folgendes geschrieben: |
| btw: Kann mir wer meine Deutsch-Hausaufgaben machen?? :roll: :roll: |
Sicher. Gibt's 'n Programm für.
BRAIN.EXE
Ups, Sry Narses :angel: . [RewriteConstant('Mod', 'Gausi, Narses');]
Wolle92 - Di 02.09.08 20:50
Das geht schon wieder nicht!!! Ich krieg die Krise! (oder Kriese?)
Was is denn nu schon wieder falsch:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function TForm1.IsIntInMDArray(AValue: Integer; PArray: Pointer): Boolean; var IntArray: Array of Integer; IntValue, Count, i, j: Integer; begin result := false; Count := Length(^PArray); SetLength(IntArray, Count); IntArray := Copy(^PArray,1,count); IntValue := AValue; for i := 1 to Count do begin for j := 1 to Count do begin if IntValue = IntArray[i][j] then result := true; end; end; end; |
Tilman - Di 02.09.08 21:18
Das Hütchen ^ muss sich hinter dem Zeiger befinden zum dereferenzieren. Allerdings kann man Pointer eh nicht dereferenzieren - man muss sie erst in einen Typisierten Zeiger umwandeln. Sei PArr ein type PArr = ^TArray: dann musst du length(PArr(parray)^) schreiben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!