Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
Szabest
#3326
üzenetére
Helló Szabest!
A fő kérdés az, hogy milyen típusú tömbben milyen típusú adatot akarsz keresni milyen módon honnantól meddig :-)
A "milyen típusú tömbben" kérdésre elvileg van válasz:
sorte fuer camera.sorteR4:Array˙[0..29] Of Int
Tehát integer típusú adatokat tartalmazó tömbben akarsz keresni ha jól értem, ami 30 elemű."milyen típusú adatot akarsz keresni" kérdésre nincs, mert egyrészt "4jegyű számokat, és mindig 4 jegyű számra szeretnék keresni benne", másrészt korábban négy darab CHAR típusú elemet emlegettél itt.
Integer tömbben integer adatot tudsz keresni, másnak nagyon nincs értelme. Az INT típus pedig nem ismer olyat, hogy "mindig 4 jegyű" szám. Az 1-999-ig nem négyjegyűek. Tulajdonképpen az INT-ben lévő érték számjegyeiről nincs is értelme beszélni, mert azok csak leírva (ASCII karakterekké vagy BCD digitekké alakítva nyer értelmet, hiszen az integert alapvetően nem is decimálisan, hanem binárisan tárolja te pedig nyilvánvalóan decimális számok számjegyeire gondolsz).
Más szóval, ha a bemenő adat (amit keresni akarsz) nem INT típusú, akkor először azzá kell alakítani. A korábbiakból úgy tűnik, hogy neked négy CHR karakter formájában jön a keresendő érték ASCII-ban kódolva vagy binárisan. Ez nekem még nem világos."milyen módon" kérdésre részben válaszoltál. De kérdés, hogy milyen eredményt szeretnél a kereséstől.
Az nyilvánvaló, hogy szeretnéd tudni, hogy benne van-e (vagy nincs benne). De érdekel-e, hogy ha benne van, akkor hol (hanyadik tömbelemben) vagy nem.
Illetve mi legyen ha nem csak egyszer van benne, hanem többször is? Vagy az nem érdekel?"honnantól meddig" ezt csak feltételezni tudom, hogy az említett tömb elejétől a végéig szeretnéd a keresést elvégezni.
Amit mellékeltél képet az hasznos, de sokkal több kérdést vet fel, mint amennyire választ ad, mivel szimbolikus címzésmódot használ és UDT-t is, vagy/vagy instance DB-t is használ. Így nem lenne rossz tudni milyen blokkban van ez és annak a blokknak pontosan hogy néz ki az interface része.
Addig biztosat annyit tudok mondani, hogy az a DB blokk, amiben az a tömb van, amiben keresni akarsz fix, már kész blokk, azaz a programot amihez a keresés kell nem most te készíted (ezt nem írtad, de a képekből úgy tűnik, hogy egy programot módosítani akarsz, nem te írtad) akkor romlik kissé a helyzet.
Mivel a TBL_FIND a keresés forrását jelentő, SRC paraméterben adott kezdőcímű E_TYPE típusú adathalmaz első elemének egy WORD típusú adatnak kell lennie (az E_TYPE által meghatározott típustól függetlenül) ami megadja az adatterület hosszát.
Ha a kérdéses DB nem módosítható, akkor ez a feltétel nyilván nem teljesíthető.Ebben az esetben azt lehet tenni, hogy létrehozol az INT tömbbel azonos elemszámú tömböt a TEMP változóterületen, ami elé teszel egy WORD változót. A WORD változóba beírod a tömb elemszámát (MOVE), majd az azt közvetlenül követő TEMP tömbbe blokk másolás BLKMOV funkcióval belemásolod a DB-ből az egész tömböt, végől az FC 86 SRC paraméterének megadod TEMP tömb előtt lévő WORD-re mutató pointert.
(Írnék erre példát, de nem akarok minden vakvágányt kidolgozni, az én időm sem végtelen... Majd ha a függő kérdések is tisztázódnak)
Új hozzászólás Aktív témák
- Peugeot, Citroën topik
- Arc Raiders
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Kormányok / autós szimulátorok topikja
- Xiaomi 15T Pro - a téma nincs lezárva
- Xiaomi 17 Ultra - jó az optikája
- ASUS routerek
- Apple MacBook
- Poco F8 Pro – titkos favorit lehet belőle
- Apple iPhone SE (2020) - életképes alternatíva
- További aktív témák...
- Eladó Intel Core i7-14700KF kifogástalan állapot, GARANCIA 2027.06.07
- Eladó G pro superlight 2 se Unusual way sports UHWM skate talpakkal.
- Fehér konfig - i7-4790k/ROG Strix GTX 1070/Wifi/Rengeteg új-dobozos alkatrész/AJÁNDÉK Resident Evil
- 3D 4K Oled Dolby Vision (LGOLED C6EP/LGOLED E6P/LG OLEDG6P)
- 3D 4K Oled Dolby Vision (LGOLED C6EP/LGOLED E6P/LG OLEDG6P)
- AKCIÓ! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- Dell Vostro 3510/i5-1135G7/8GB/256GB M.2/WIN11/Újszerű állapot/Jó akku, 4 óra/Számlával!
- Zotac / Inno3D RTX 3080 Ti // Számla // Garancia //
- HP EliteBook 845 G7 14" Ryzen 5 pro 4650U, 8-16GB RAM, 256-512GB SSD, jó akku, számla, 6 hó gar
- Nothing Phone (1) / 8/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
