Hello,
Adott egy par megas plain text szoveg amiben sms-ek vannak telefonszammal egyutt es valahogy megkellene szamolni melyik szamrol hany sms jott. Szoval eleg lenne osszeszamolni melyik telefonszam hanyszor szerepel a szovegben, esetleg ha lenne valami otletetek igazan jol jonne.
Koszi
- 1540 megtekintés
Hozzászólások
Milyen valaszt varsz? mondjuk meg milyen nyelven kodold le? es hogyan?
a feladat megoldasa adja magat, eleg egyszeru.
mintat illesztesz a szamokra, es osszeszamolod a oket. ezt kell megfogalmazni pl perlben. abban gyorasan le lehet implementalni.
nem egy mukodo valtozat, koritest kihagytam, mondhatnam pszedokod:
while(<>){
/(\d+)/;
$data{$1}++;
}
print %data;
zsolt
- A hozzászóláshoz be kell jelentkezni
Annyiban nehezebb a dolog, hogy nem eleg osszeszamolni, hogy osszesenhany szam volt, hanem minden szamot ki kellene listazni es mellette szerepeljen, hogy az adott szam hany sms-t kuldott. De vegulis annyira nem nehez azota kicsit gondolkodtam a dolgon.. azert koszonom a hozzaszolasokat
- A hozzászóláshoz be kell jelentkezni
a megoldas ott van xbit postjaban...
- A hozzászóláshoz be kell jelentkezni
Ha tagolt a szöveg tehát van valamilyen elválasztó az sms szövege és a telefonszám között (tab vagy vessző stb.) akkor megnyitod valamelyik táblázatkezelővel onnanstól meg sima szűrési feladat.
- A hozzászóláshoz be kell jelentkezni
Én megpróbálnám kiszedni belőle csak a telefonszámokat "egy sorban egy szám" szisztéma szerint (ennek konkrét megvalósításához persze ismerni kellene a fájl struktúráját, majd ezután egy "sort | uniq -c".
- A hozzászóláshoz be kell jelentkezni
Ha köldesz mintát a szövegből hétfőre 10kFt-ért megírom a scriptet
(Ha ez sok akkor Google és SzabiLinux)
----
Nyicc-egy-csört?
Esetleg nézd meg itt: http://kayapo.extra.hu/
- A hozzászóláshoz be kell jelentkezni
Rontom itt más üzletét, de ha mutatsz egy kis mintát (amiben pl. a szöveget átírod x-ekre), akkor segítünk megírni.
Egyébként csak találgatni tudunk, mint például:
egrep -o '+36[0-9]{8,9}' smsek.txt | sort | uniq -c
Persze további segítség lenne (mint ahogyan fentebb is írták), ha pontosan tudnánk, hogy hogyanis néz ki a fájl.
- A hozzászóláshoz be kell jelentkezni
A minta inkább
"\+36[237]0[2-9][0-9]{6}"
legalábbis mobilról érkezó SMS-ek esetén (szerintem...).
- A hozzászóláshoz be kell jelentkezni
Igen, ezért lenne jó egy minta :)
- A hozzászóláshoz be kell jelentkezni
Ez csak annyi, hogy a nemzetközi formátumban lévő magyar mobilszámokra illeszkedik...
- A hozzászóláshoz be kell jelentkezni
off(
hmm, hát a feladat nagyon ismeros :) , csaknem készülünk az emelt szintű informatika érettségire ? Talán pár hete csináltam meg én is a 2008-as májusi feladatlapot azthiszem abban volt ez a programozási feladat. Nem egy tul bonyolult feladat, igaz én pascalban írtam meg...
)
szerk: amugy ezt én ugy oldottam meg hogy egy tömbe beolvastam az osszes adatot aztán felvettem egy boolean rekordot is hozzá aztán egy "while" ciklussal elekzdtem számolgatni az azonos számokat , és a már megszámolt számoknál true-ra váltottam a boolean változót ...
- A hozzászóláshoz be kell jelentkezni
utánna néztem , és tévedtem. az éretsségiben nem volt ilyen részfeladat :)...
- A hozzászóláshoz be kell jelentkezni
Egy felől valszeg már érdektelen (aki indította a topicot az rég nem szólt hozzá), másfelől meg kicsit bonyolultabb lehet az ügy. Ha SMS severből való a kimenet, (esetleg talafon központból) akkor a bejegyzés végét nem újsor jelzi, hanem speciális karakter, illetve lehet az üzenetben is újsor, (volt már ilyennel dolgom) ami tovább komplikálja a dolgot.
Mindenesetre én perlben írnám a scriptet, reguláris kifejezésekkel, meg hash -ekkel.
----
Nyicc-egy-csört?
Esetleg nézd meg itt: http://kayapo.extra.hu/
- A hozzászóláshoz be kell jelentkezni