Jak uzyskac index tablicy

0

Tak jak w temacie.
Znam wartosc pola tablicy i chcialbym uzyskac index tego pola - czy jest to w ogole mozliwe? A jesli tak to jak to zrobic?
pozdrowienia dla wszystkich

Pomijam oczywiscie metode for i:=0 to Length(Tablica) - 1 do bo to jest oczywiste ;)

0

indeks:=Low(Tablica);
znalazlem:=False;
while (indeks

0

Owszem, tylko, ze musisz przeszkanowac cala tablice. Jesli bedzie kilka wartosci do roznych indeksow to juz nie bedziesz w stanie jednoznacznie okreslic indexu.

var
I, N : Integer;
S : String;
A : array of String;
begin
N := 10;
S := '4p'; // to jest nasza znana wartosc ktoregos elementu tablicy
SetLength(A, N); //przypisujemy tablicy A N alementow
for I := 0 to N-1 do
if A[I] = S then ShowMessage('Jest to ' + IntToStr(I) + ' element tablicy');

Pamiętaj, ze istnieje jeszcze zerozy element tablicy!

dopisane:
Ehhh... pq mnie wyprzedzil:) Ale u mnie sam ustalasz ilosc elementow tablicy i znajduje wszystkie takie same elemanty a nie tylko pierwszy:)

0

to tak jak w botach w liście masterów:

function indexof(a:array of string;s:string):integer;
var i:integer;
begin
for i:=low(a) to high(a) do if a[i]=s then result:=i;
end;

niewiem czy zadziała ale ...;)

0

Nie zadziała (tzn. zadziała źle), jeśli tablica ma jeden element. Spróbuj wpisać coś takiego:

for i:=0 to 0 do ShowMessage('według wszelkiej logiki, to nie powinno się pojawić');

W tym przypadku wszelka logika zawodzi... :) Program albo się całkiem zapętli, albo wyświetli jakąś tam losową liccbę komunikatów (nie wiem, od czego to zależy)

1 użytkowników online, w tym zalogowanych: 0, gości: 1