- Ősszel jönnek a Toshiba új, vállalati szegmensbe szánt merevlemezei
- OLED TV topic
- Formabontó vezetékmentes klaviatúrák jöttek a Keychron műhelyéből
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Szünetmentes tápegységek (UPS)
- Home server / házi szerver építése
- Autóhifi
- Ősszel jönnek az új Intel chipek
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- ASUS Vivobook Snapdragonnal: talán egy új korszak kezdete!
Hirdetés
-
Ellopták a Tesla akkumulátor-titkait
it Beperelte egy korábbi beszállítóját a Tesla, és azzal vádolja, hogy üzleti titkokat lopott a Tesla akkumulátorgyártási technológiájával kapcsolatban.
-
Mégsem ér 16 GB-ot a 8 GB RAM az Apple gépekben
ph Persze ez eddig is logikus volt, de most már az Apple oldalán is érezhető egy funkció kapcsán a limitáció.
-
Felskálázza a Nubia a Snapdragon 8 Gen 3 órajeleit
ma A Redmi Magic 9 Pro már télen felforrósodott, mi lesz nyáron a felturbózott 9S Próval?
Új hozzászólás Aktív témák
-
trisztan94
őstag
válasz
trisztan94 #15328 üzenetére
Másik dolog,
Azt is ki kellene szűrni, ha hülye user úgy tölt fel egy .xls-t, hogy nem minden sorban van adat, vagy éppen rossz adat van benne, mondjuk pl. benne hagyják a fejlécet.
Azt, hogy üres-e a cella egy sima $cell != '' elágazással ellenőrzöm.
Az biztos, hogy a cím egy irányítószámmal kezdődik, amit egy városnév követ, utána egy utca majd házszám, tehát erre szerintem egy Regexp lenne a legjobb, nem? Elég lenne azt csekkolni, hogy van-e egy négyjegyű szám a string elején? Ha igen, tudnátok nekem írni erre egy regexpet pls?Így néz ki egy sample string:
1158 Budapest Késmárk u. 7/b.
https://heureka-kreativ.hu
-
moltam88
tag
válasz
trisztan94 #15328 üzenetére
Ha jól értem itt az a probléma, hogy változhat az oszlopszám, de úgy kell előállítani a stringet, hogy a cellák között mindig legyen egy szóköz.
Erre nem igazán értem miért próbálkoztál switch-el, mikor az összes cellára ugyanazt kell csinálni.
Lehetne valami ilyesmi módszerrel:
- A belső ciklus előtt létrehozol egy temp változót üres sztringgel, ebben fűzöd össze az aktuális sorban levő címet az oszlopokból.
- A belső ciklusban a cella értékét trimelve hozzáfűzöd a temp változóhoz, illetve hozzűfűzöl egy szóközt is.
- A belső ciklus után nyomsz egy trimet a temp változóra (ez kiveszi az utolsó cella után rakott szóközt). Itt ellenőrizheted, hogy megfelelő adat van-e benne (illeszkedik-e rá a reguláris, nem üres-e, stb.), és ha igen akkor feldolgozod, ahogy szeretnéd.[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz
trisztan94 #15328 üzenetére
Nekem az nem tiszta, ezt miért switch-case-zel oldottad meg. Csak gyorsan néztem rá a kódra, de ahogy lejött, annyi a lényeg, hogy végigmész azokon az oszlopokon, amikben van valami, és összefűzöd az egészet. Na de akkor itt nem kell switch-case elméletileg, csak végigmész az első kitöltött oszloptól az utolsóig, a benne levő cellákat meg összefűzöd. Persze az más kérdés, hogy mivel kapod meg, hogy melyik oszloptól meddig van bármi eredményed.
(#15329): hát egy címre rohadt nehéz jó regexpet írni, mert ezerféle lehetőség van, ahogy írhatják. Például az irányítószám után lehet, hogy szerepel pont. Az utcanév után nem biztos, hogy a júzernek eszébe jut odatenni, hogy utcáról/körútról/akármicsodáról van szó. Lehet, hogy az utcát úgy írja, hogy "u." vagy úgy, hogy "utca", körutat úgy, hogy "krt.", "krt", "körút", és így tovább. Lehet, hogy a számozást úgy írja, hogy "7/b.", "7/b" "7b", "7b.", "7 b", "7-b", és még lehetne sorolni... Szóval ez elég necces kérdés.
Most ezt gyorsan bepötyörésztem, rettentő buta megoldás, de illeszkedik arra, hogy
1158 Budapest Késmárk u. 7/b.
-->
\d{4} [A-záéíóöőúüű]+ [A-záéíóöőúüű]+ [A-záéíóöőúüű.]+ [A-záéíóöőúüű0-9./]+Mondom, ez egyáltalán nem biztos, hogy jó, csak a mintádra illeszkedik. Ilyen kb. 20 másodpercnyi pötyögés volt benne, szóval ennél tuti létezik sokkal jobb megoldás is. Ékezet is lehet benne, kezeli azt az esetet, ha a négy számjegyből álló irányítószám után van pont, ilyesmik. Amúgy nem biztos, hogy foolproof megoldás.
Itt le tudod tesztelni gyorsan, ha akarod: http://regexpal.com/-------
SZERK.: hehe, ez jó
most látom, ezt a lapot kb. egy órája töltöttem be, aztán most visszaváltottam a böngészőben erre a fülre a többiről, és úgy írtam a választ, frissítés nélkül, hát vasárnap van, ez van, látom közben haladt a dolog, na mindegy, most már nem törlöm ki.
Amúgy annyi, hogy a regexpben az nem biztos, hogy a legjobb, hogy .* van, mert az BÁRMIRE illeszkedik, nem csak mondjuk a magyar ábécé betűire, és valami megkötést nem árt tenni. Persze nem tudom, nálad milyen adatok lehetnek. Viszont az a whitespace-eknél jobb, hogy \s+ van, nem csak egy darab szóköz, mert így akármennyi whitespace lehet közöttük.[ Szerkesztve ]
Sk8erPeter
Új hozzászólás Aktív témák
- Politika
- Két hét múlva Samsung Galaxy Unpacked
- Kerékpárosok, bringások ide!
- Ősszel jönnek a Toshiba új, vállalati szegmensbe szánt merevlemezei
- OLED TV topic
- EA Sports WRC '23
- Autós topik látogatók beszélgetős, offolós topikja
- Drágább lett a Pixel 8a
- Anime filmek és sorozatok
- Kupon kunyeráló
- További aktív témák...
- The Compensator 5.0 - Top-END Gaming PC
- ÁRESŐ! Dobozos új Dell Inspiron 16 7610 /11.gen i5-11400H/16GB/512SSD/RTX 3050 4GB/Gari/3k
- Macbook Pro M2 "ÚJ" 2 töltéssel 2024.10.30. Apple garancia
- Xiaomi Redmi 10 64GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Note 10S 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi watch s1 active,Media Markt gari,nfc fizetést tudja!
- SZINTE INGYEN! 3db HP Pavilion x2 Tablet/Laptop 2in1 ( Olvass leírást ) Foxpost van!
- Huawei Watch gt 3 Elite,hibàtlan működès, karcmentes makulátlan állapot!
- Samsung Galaxy A33 5G 128GB 6GB RAM Új Dual SIM Független Okostelefon Eladó
- Xbox Series Carbon Black Kontroller