Autor Beitrag
Borlox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Fr 03.01.03 17:13 
Hi Leute,

ich habe ein zweidimensionales Array (test[1000][5]) und nun möchte ich in den 1000 "verschiedenen Variablen" nach einem bestimmten Text suchen! Ich könnte das natürlich auch mit einer for i Schleife machen, aber es gibt doch sicherlich noch eine bessere Möglichkeit!!! Oder???

Danke
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Di 07.01.03 15:34 
Hi,

eine for-Schleife müsste doch eigentlich reichen. Nehmen wir mal an, du hättest ein meinarray: Array [1..1000] of Array [1..5] of String;

Dann sähe der Code dazu in etwa so aus:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
  i, j: Word;
begin
  for i := 1 to 1000 do begin
    for j := 1 to 5 do begin
      if meinarray[i, j] = 'Mein Text' then
        ShowMessage('Text befindet sich in: '+ InttoStr(i) + ', ' + InttoStr(j));
      end;
    end;
end;


Ist jetzt nur so aus dem Ärmel geschüttelt - hoffe es funktioniert.

AXMD
Borlox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Di 07.01.03 15:59 
Titel: !!!
Ich habe ja schon geschrieben, das ich das auch so gemacht hätte, aber es wäre viel leichter, wenn ich einen Befehl wüsste, mit dem man einfacher danach suchen kann!
Außerdem weiß ich noch nicht so genau, wie ich das mache, wenn es mehrere Übereinstimmungen gibt!
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 07.01.03 16:35 
Wie wäre es, wenn du eine Funktion schreibst, die dir den Index des ersten Vorkommens zurückliefert. Ein zu übergebender Parameter könnte dann noch den Beginn des abzusuchenden Bereiches definieren, sodaß du auch auf mehrere Vorkommen überprüfen kannst.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function SeekStr(SeekedStr,StartAt:Integer=0);
begin
  Result:=-1;
  for i:=StartAt to High(MyArray) do
    if MyArray[i]:=SeekedStr then
    begin
      Result:=i;
      exit;
    end;
end;


Cu, :)
Udontknow
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: Mi 08.01.03 23:12 
Was Borlox sucht, ist ein spezieller Befehl um ein Array zu durchsuchen.

So etwas gibt es aber leider nicht.

_________________
If accidentally read, induce vomitting.
Borlox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Mi 08.01.03 23:17 
Titel: Schade
Schade, aber trotzdem Danke an alle!
HeLe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mo 17.02.03 16:59 
Ex0rzist hat folgendes geschrieben:
Was Borlox sucht, ist ein spezieller Befehl um ein Array zu durchsuchen.

So etwas gibt es aber leider nicht.


die antwort kommt vielleicht ein bißchen spät, aber das wollt ich hier so nicht stehen lassen:
bei etwas fortgeschritteneren aufgaben sollte man eigentlich immer statt arrays containerklassen wie tlist, tobjectlist und in diesem fall tstringlist verwenden. und siehe da, letztere hat ne methode find :lol: