-
suche in Datenstruktur Array
Hallo zusammen ,
ich arbeite unter V6R1M0.
Ausganngssitiation ist folgende:
ich habe z.b. ein DS mit 3 feldern
datenstruktur DS Qualified
arr dim(100)
feld1 10A
feld2 20A
feld3 10 A
diese ist mit z.b. folgenden werten gefüllt
Feld1 Feld2 feld3
hans , busch , strasse
joachim, nachname , ort
hans , busch , strasse
manfred, blabla , weg
nun bekomme ich 3 suchargumente hans , busch, Strasse.
jetzt möchte ich in der datenstruktur überprüfen wo im
feld 1 hans steht und
feld 2 busch steht und
feld 3 strasse steht
mit %lookup bekomme ich das ja nicht hin weil ich immer nur 1 such argument übergeben kann und nicht die ganze datenstruktur vergleichen kann.
weiss jemand evtl ne bessere lösung als mit schleifen und ifs usw zu arbeiten ?
grüsse
-
Warum machst Du keinen %Lookup auf ARR?
Da hast Du doch alle Felder in Reihe und kannst selektieren.
Birgitta
-
wie meinst du das ?
ich kann doch nur schreiben
e1 = %lookup (hans : datentruktur.feld1 )
if e1 <> zeros
e2 = %lookup (busch : datentruktur.feld2 )
if e2 <> *zeros and e2 = e1
e3 = %lookup (strasse : datentruktur.feld3 )
usw usw
ich würde aber gerne alle drei felder gleichzeitig suchen .
viele grüsse
-
%lookup ist nicht schneller als eine eigene Schleife, nur hlat komfortabler.
Sortierte Tabellen gehen schneller da hier Binärsuche (hoffentlich) verwendet wird.
Solange du nach dem gesamten Begriff suchst, kannst du natürlich auf "ARR" suchen:
%lookup(Suchfeld:Arr)
Das Suchfeld muss natürlich entsprechend dem ARR definiert und belegt werden.
Wenn du nur Feld1 und Feld3 suchen willst, kommst du um eine Schleife nicht herum.
-
hallo furechau ,
hab mich evtl falsch ausgedruckt.
ich würde gerne so suchen lookup( hans , busch, strasse : feld1 : feld2 : feld 3 )
das geht natürlich nicht . habs jetzt nur mal so zum besseren verständnis geschrieben
-
Da du ja weißt, dass das nicht geht, verstehe ich dein Problem nicht:
d Suchfeld ds
d F1 10
d f2 20
d f3 10
f1 = hans; f2 = busch; f3 = Strasse;
lookup(Suchfeld:Arr);
-
wollte nur wissen obs da evtl nen trick 17 gibt
-
So wie Du die Datenstruktur definiert hast, kannst Du ein 40A Vergleichsfeld füllen und dann mit diesem den %LOOKUP auf das Array ARR machen:
Code:
D DSVergl DS Qualified
D Feld1 10A
D Feld2 20A
D Feld3 10A
/Free
DSVergl.Feld1 = 'Hans';
DSVergl.Feld2 = 'Busch';
DSVergl.Feld3 = 'Strasse';
Pos = %LookUp(DSVergl: Datenstruktur.Arr);
Sofern POS = 3 wäre, würde in Datenstruktur.Feld1(3) Hans stehen in Datenstruktur.Feld2(3) Busch und in Datenstruktur.Feld3(3) Strasse.
Birgitta
-
Der Trick 17 ist: schreibe (vernünftigerweise) dafür eine Funktion:
d Suchen pr 5i 0
d F1 10 const
d F2 20 const
d F3 10 const
Suchen(Hans:Busch:Strasse);
p suchen b
d Suchen pi 5i 0
d F1 10 const
d F2 20 const
d F3 10 const
return %lookup(F1 + F2 + F3:Arr);
p suchen e
Du kannst ja %lookup(hans + Busch + Strasse:Arr) direkt verwenden, allerdings sind die Begriffe dann genau mit Blanks aufzufüllen.
Die Funktion sorgt aber dafür, dass die Feldlängen korrekt sind und somit der %lookup immer mit dem Begriff korrekt sucht.
Similar Threads
-
By AK1 in forum NEWSboard Server & Hardware Markt
Antworten: 11
Letzter Beitrag: 08-02-14, 18:24
-
By XMan in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 08-01-14, 18:51
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 25-12-13, 14:15
-
By Charly_t in forum NEWSboard Server & Hardware Markt
Antworten: 1
Letzter Beitrag: 04-01-02, 13:34
-
By benny in forum NEWSboard Server & Hardware Markt
Antworten: 4
Letzter Beitrag: 06-02-01, 14:34
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks