- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Home server / házi szerver építése
- Milyen videókártyát?
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Nem fut az Intel grafikus vezérlőin az év egyik legjobban várt címe
- Apple MacBook
- Milyen billentyűzetet vegyek?
- ASUS blog: Aludj nyugodtan!
- Otthoni időjárás-állomás
- Melyik hordozható audiolejátszót (DAP, MP3, stb.) vegyem?
Ú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
- Bemutatkozott a Poco X7 és X7 Pro
- Pécs és környéke adok-veszek-beszélgetek
- Crimson Desert
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Home server / házi szerver építése
- Kertészet, mezőgazdaság topik
- Milyen videókártyát?
- Windows 11
- Elemlámpa, zseblámpa
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- További aktív témák...
- Ryzen 7 3700X / RTX 2060 SUPER / 32GB RAM / 512GB NVMe Gamer PC
- Beszámítás! Motorola Sound Flow XT2549-1 hangszóró hibátlan működéssel
- Beszámítás! Lenovo Thinkpad P15 Gen 1 FHD notebook - i7 10850H 32GB DDR4 1TB SSD T2000 4GB W11
- Beszámítás! Samsung Galaxy S23 Ultra 256GB okostelefon garanciával hibátlan működéssel
- Samsung Galaxy S23 Plus 5G (8/512 GB) független, garanciás 210 000 Ft
- billentyűzetek - kiárusítás - Logitech, Corsair, ASUS
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Bomba ár! Panasonic CF-20-1 Tab+Laptop: m5-6G I 8GB I 256SSD I 10,1" WUXGA Touch I Cam I W11 I Gar
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- 27% - LG UltraGear 27GS95QE-B Monitor! 2560x1440 / 240Hz / 0.03ms / G-SYNC / FreeSync BeszámítOK!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


