Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  C#.Net otsingu programm märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 29.07.2013 02:18:51 C#.Net otsingu programm vasta tsitaadiga

Ma ei ole C#.Net programmeerimisega kolm aastat kokku puutunud ning seetõttu on veidi raske selles keeles programmeerida.

Idee on programmeerida otsingu programm, kui txt file esimene rida on '2,0,24828710,59497290,,21,1153', siis otsiks teise väärtuse järgi, näiteks kirjutan otsingusse 0, siis otsib esimese väärtuse järgi, mitte ülejäänud 6 väärtuses ka. Tulemuseks, peaks olema, kas terve rida või ainult esimene väärtus.

Seni olen txt faili lugemisega ja otsimisega hakkama saanud, kasutasin StreamReaderit. Kuid oleks vaja, et txt file loetakse interneti lehelt, seni uurides olen aru saanud, et selleks kasutatakse WebClient, aga kas seda veebilehel olevat txt file pole võimalik lugeda, kasutades StreamReaderit. Teine suur probleem on, kuidas kirjutada kood, et rea lõpuks loeb koma. Kuidas oleks kõige lihtsam lahendada esimese väärtuse järgi otsing.

txt file asub: http://soiduplaan.tallinn.ee/gps.txt
Rida: 2,0,24828710,59497290,,21,1153
Peaks lugema nii:
2
0
24828710
59497290

21
1155
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 29.07.2013 08:39:22 vasta tsitaadiga

"Reavahetuse asemel koma" kohta ütleks. et loe kogu rida ära ja siis võid komad revahetuste vastu vahetada. Kui andmed sobivasse struktuuri lükkad, pole pärast ka otsingu tegemine keerukas. Seda muidugi eeldusel, et andmete maht võimaldab neid korraga mälus hoida.
Detaile kuid see konkreetses keeles täpselt teha, ei oska kahjuks öelda, on kogemusi küll paljude muude keeltega, aga mitte C#-ga.
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 60
tagasi üles
vaata kasutaja infot saada privaatsõnum
Erti-Chris
HV vaatleja
Erti-Chris

liitunud: 23.07.2011




sõnum 29.07.2013 08:44:14 vasta tsitaadiga


HttpWebRequest httpRequest = (HttpWebRequest) WebRequest.Create(lcUrl);

httpRequest.Timeout = 10000;     // 10 secs
httpRequest.UserAgent = "Code Sample Web Client";

HttpWebResponse webResponse = (HttpWebResponse) httpRequest.GetResponse();
StreamReader responseStream = new StreamReader(webResponse.GetResponseStream());

string content = responseStream.ReadToEnd();


See peaks aitama. Järgmiseks peaks "content" muutujat splitima esialgselt "\r\n" järgi, hiljem tuleks kõik massiivi elemendid üle käia ning need eraldi splittida koma järgi. Siis saad konkreetse rea veeru kätte nt content[RIDA][0].
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
Alan
HV veteran
Alan

liitunud: 12.02.2008



Autoriseeritud ID-kaardiga

sõnum 29.07.2013 09:06:48 vasta tsitaadiga

brixxx kirjutas:
Ma ei ole C#.Net programmeerimisega kolm aastat kokku puutunud ning seetõttu on veidi raske selles keeles programmeerida.


Doh, ma pole rohkem kui 3a C#-i puutunud, aga enamvähem meeles on ikka. Kuigi nähtavasti praeguseks see keel juba oluliselt mugavamaks muutunud, kui tollal (2004) oli.


using System.Net;
using System.IO;


string url = "http://soiduplaan.tallinn.ee/gps.txt";
            Uri uri = new Uri(url);

            WebRequest req = WebRequest.Create(uri);
            WebResponse res = req.GetResponse();

            Stream stream = res.GetResponseStream();
            StreamReader sr = new StreamReader(stream);

            string gpsData = sr.ReadToEnd();
            sr.Close();
            stream.Close();
            res.Close();

            IList<string> lines = gpsData.Split('\n');


            // Järgnev on lihtsalt otsing ja tekstina splittimine, eks ise splitid massiiviks, kui vaja on - me ei tea, ja sa ei kirjeldanud, mida sa komakohtadelt splititud andmetega edasi teed.

            string searchFor = "3";

            foreach (var line in lines)
            {
                if (line.Length < searchFor.Length) continue;
                if (line.Split(',')[1] == searchFor) {
                    Console.WriteLine(line.Replace(",", "\n") + "\n---");
                }
            }


viimati muutis Alan 29.07.2013 09:24:59, muudetud 1 kord
Kommentaarid: 131 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 121
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 29.07.2013 09:18:29 vasta tsitaadiga

brixxx, kui otsid abi töö tegemisel, võiksid asja vastavalt väljendada.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 29.07.2013 12:11:09 vasta tsitaadiga

Ma üritasin oma jõududega hakkama saada, kolm päev uurisin netis koode, aga kuna on kiire selle asjaga, siis otsustasin küsin veidi abi.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Mnator
HV Guru

liitunud: 18.10.2007



Online

sõnum 29.07.2013 12:23:28 vasta tsitaadiga

tee töövahendusse oma teema! ei paista kuskilt, et midagi ise oleksid teinud.........
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 29.07.2013 13:10:48 vasta tsitaadiga

Mnator kirjutas:
tee töövahendusse oma teema! ei paista kuskilt, et midagi ise oleksid teinud.........

Andke andeks, et tegin teema, siin foorumis tekib küll küsimus, parem mitte midagi küsida. Tänan neid, kes aitasid.
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 29.07.2013 13:56:05 vasta tsitaadiga

Eks siin pahandatakse pisut põhjusega. Proovisin googeldada, ei läinud minutitki, et leida kuidas C#-ga veebilehelt fail kätte saada. Edasine on juba puhas andmete töötlemine, mis ei tohiks üle jõu käia, kui natukenegi keele hingeeluga kursis oled ega ka raske googeldada, kui konkreetset keelt ei oska, aga mõnes muus keeles kogemus olemas. Konkreetsel juhul oligi mõne inimese kerge pahameel sellest tingitud, et sisuliselt polnud sa ise mitte midagi teinud ja lootsid, et keegi siin valmislahenduse välja pakub.
Hea tava näeb ette, et kirjeldadad ära konkreetse probleemi, selle mida varem juba proovinud/otsinud oled ja kus täpselt toppama jäid. "Mitte midagi ei oska" pole antud juhul väga hea kirjeldus kohast kus toppama jäid, kui asjad nii on, siis tuleks alustada sellest, et kirjutad google otsingusse n'iteks <keele nimi> tutorial või siis teed põhilised keelekonstruktsioonid manuali abil selgeks.

Aga näiteid anti siin juba piisavalt, proovi nüüd nende abil midagi valmis teha ja kui mõne konkreetse koha peal toppama jääd, siis küsimus võimalikult korrektselt vormistada. Siis leiad siit tõenäoliselt ka abi, kui leidub inimesi, kes seda pakkuda oskavad.
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 60
tagasi üles
vaata kasutaja infot saada privaatsõnum
Alan
HV veteran
Alan

liitunud: 12.02.2008



Autoriseeritud ID-kaardiga

sõnum 29.07.2013 13:57:55 vasta tsitaadiga

Kui keelega 3 aastat kokku puutunud ei ole, ei tohiks tõesti väga kaua aega minna, et järg uuesti kätte leida. Samuti, kui 3a tagasi mingidki oskused olemas olid, peaks ju omale vajalikku asja googeldada ikka oskama. Ilmselt on lihtsalt mingi noor troll, kellel vaja mingi kooliülesanne/lõputöö ära lahendada.
Kommentaarid: 131 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 121
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 29.07.2013 14:46:58 vasta tsitaadiga

Ma googeldasin kolm päeva, sain txt faile kuvamisega ja väärtuste otsinguga hakkama. Aga probleem oli, et oleks kuvanud txt faili veebilehelt, mitte failina salvestatud faili arvutis ning kuna selles dokumendis on palju ühesuguseid numbreid, näiteks kui panin otsingusse 3, siis otsis kõigis 7 väärtusi, tahtsin, et otsib esimest väärtust.

Aga ma lähen vist lihtsama teed, et kasutan WebClient DowloadFile funktsiooni, kuigi hetkel on probleem, et 7 väärtust on üks rida, mitte kõik arvud on üksteise järele pandud. Ning kuna otsin teise väärtuse järgi, siis panen väärtuse komade vahele.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Alan
HV veteran
Alan

liitunud: 12.02.2008



Autoriseeritud ID-kaardiga

sõnum 29.07.2013 14:49:40 vasta tsitaadiga

brixxx kirjutas:
Aga ma lähen vist lihtsama teed, et kasutan WebClient DowloadFile funktsiooni, kuigi hetkel on probleem, et 7 väärtust on üks rida, mitte kõik arvud on üksteise järele pandud. Ning kuna otsin teise väärtuse järgi, siis panen väärtuse komade vahele.


Edu sulle su edasistes tegemistes. Ma võtan asja kokku nüüd nii:

Kommentaarid: 131 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 121
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Dealer14
HV vaatleja

liitunud: 09.02.2004




sõnum 30.07.2013 01:10:33 vasta tsitaadiga

WebClient -i oleks sul palju lihtsam kasutada.

Isiklikult teisendaksin andmed tekstfile-st 2D või jagged array-sse ja otsiksin sealt.



using System.IO;
using System.Net;




            string url = "http://soiduplaan.tallinn.ee/gps.txt";

            WebClient client = new WebClient();
            Stream stream = client.OpenRead(url);

            StreamReader reader = new StreamReader(stream);

            // Console.Write(Encoding.UTF8.GetByteCount(reader.ReadToEnd()));
            string content = reader.ReadToEnd().TrimEnd();
            List<string> lines = content.Split('\n').ToList();


Kommentaarid: 22 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
PitBull
HV kasutaja

liitunud: 31.10.2003




sõnum 30.07.2013 21:27:23 Re: C#.Net otsingu programm vasta tsitaadiga

brixxx kirjutas:
...
txt file asub: http://soiduplaan.tallinn.ee/gps.txt
Kui saladus ei ole, mis projekt see on või milleks Sa neid andmeid kasutad?
_________________
Otsin katkist modulaarset PSU-d(lammutamiseks) raha või töökorras PSU vastu.
Kommentaarid: 16 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 16
tagasi üles
vaata kasutaja infot saada privaatsõnum
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 02.08.2013 00:21:01 Re: C#.Net otsingu programm vasta tsitaadiga

PitBull kirjutas:
brixxx kirjutas:
...
txt file asub: http://soiduplaan.tallinn.ee/gps.txt
Kui saladus ei ole, mis projekt see on või milleks Sa neid andmeid kasutad?

See on ühe ettevõtte töökoha proovitöö.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Alan
HV veteran
Alan

liitunud: 12.02.2008



Autoriseeritud ID-kaardiga

sõnum 02.08.2013 00:29:05 Re: C#.Net otsingu programm vasta tsitaadiga

brixxx kirjutas:
PitBull kirjutas:
brixxx kirjutas:
...
txt file asub: http://soiduplaan.tallinn.ee/gps.txt
Kui saladus ei ole, mis projekt see on või milleks Sa neid andmeid kasutad?

See on ühe ettevõtte töökoha proovitöö.


Ohhhh ei.... Ohh, ohhh, oeh.
Kommentaarid: 131 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 121
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 02.08.2013 00:39:38 vasta tsitaadiga

Ma tegin vormi andmete otsimiseks. Hetkel on see probleem, et olen seni siiani jõudnud:

private void txtSearchData_TextChanged(object sender, EventArgs e)
        {

            string line;

            System.IO.StreamReader file = new System.IO.StreamReader("C:/Users/Dell/Documents/gps.txt");

            while ((line = file.ReadLine()) != null)
            {

                if (line.Contains(txtSearchData.Text))
                {

                    txtSearchData.Text(line);
                }

            }


        }
    }


Aga siiani ei anna otsingu tulemust, oleks hea kui keegi saaks aidata.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Alan
HV veteran
Alan

liitunud: 12.02.2008



Autoriseeritud ID-kaardiga

sõnum 02.08.2013 08:05:21 vasta tsitaadiga

Kui sa juba proovitöö kohta siin nii palju abi vajad, siis mis sinust seal ettevõttes saab? Palud siis ka, et keegi foorumis sinu eest asjad ära teeks?
Kommentaarid: 131 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 121
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
neros
HV Guru
neros

liitunud: 26.11.2003




sõnum 02.08.2013 11:17:18 vasta tsitaadiga

Soovitan soojalt sul natuke õppida veel, enne kui sa kuhugi selles valdkonnas tööle lähed. Ütlen sulle kohe ära, et selliste teadmistega jääd sa niivõrd jänni, et sind pruugitakse esimese nädalaga välja.
_________________
GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt.
Kommentaarid: 48 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 02.08.2013 11:25:43 vasta tsitaadiga

madedog kirjutas:
Soovitan soojalt sul natuke õppida veel, enne kui sa kuhugi selles valdkonnas tööle lähed. Ütlen sulle kohe ära, et selliste teadmistega jääd sa niivõrd jänni, et sind pruugitakse esimese nädalaga välja.

Ma kandideerisin tehnilise testijaks ning muideks olen juba kaks aastat tarkvara testijana töötanud. Ma vaatan, et siin on u samasugune rahvas kui paljud töövõtijad, et kohe peab kõike oskama, et töö käigus ei saagi õppida. Mina usun töö käigus õppimist rohkem kui teooria õppimist ainult. Ma ei usu, et saan järgmisesse vooru, aga tahaks proovitöö ikka valmis teha ja saata ära. Kui oleks programmeerimine olnud PHPs ei oleks asi nii hull, seda oskan kõige enam.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Dealer14
HV vaatleja

liitunud: 09.02.2004




sõnum 02.08.2013 12:00:39 vasta tsitaadiga

brixxx kirjutas:
Ma tegin vormi ......

private void txtSearchData_TextChanged(object sender, EventArgs e)
        {

            string line;

            System.IO.StreamReader file = new System.IO.StreamReader("C:/Users/Dell/Documents/gps.txt");

            while ((line = file.ReadLine()) != null)
            {

                if (line.Contains(txtSearchData.Text))
                {

                    txtSearchData.Text(line); // Siin peaks olema txtSearchData.Text = line; See on siis süntaksi viga
                   
                }

            }


        }
    }



Hmmm, ma nüüd kindel ei ole, aga põhimõtteliselt peaks su programm töötama umbes nii:

Oletame, et tahad väärtust 534 sisestada textboxi:

Vajutad klahv nr "5"-te
EventHandler tuvastab _TextChanged "sündmuse"
kood nüüd otsib,esimese rea, kus sees on "5"
see rida kopeeritakse "txtSearchData" textbox-i
kuna txtSearchData_s on nüüd tolle gps.txt rida, mis sisaldab esimest nr 5-te siis (näiteks 324,664563435,53,42)
EventHandler tuvastab _TextChanged "sündmuse"
nüüd otsib kood seda rida, mis sisaldab esimest nr 5-te(näiteks 324,664563435,53,42)
see rida kopeeritakse "txtSearchData" textbox-i

edasi, kas hakkab "loop"-ima või pigem kuna textbox-is text ei muutu siis kood jõuab ilusti lõpuni.
Kommentaarid: 22 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
brixxx
Lõuapoolik
Lõuapoolik
brixxx

liitunud: 04.01.2012




sõnum 02.08.2013 17:53:44 vasta tsitaadiga

Dealer14 kirjutas:
brixxx kirjutas:
Ma tegin vormi ......

private void txtSearchData_TextChanged(object sender, EventArgs e)
        {

            string line;

            System.IO.StreamReader file = new System.IO.StreamReader("C:/Users/Dell/Documents/gps.txt");

            while ((line = file.ReadLine()) != null)
            {

                if (line.Contains(txtSearchData.Text))
                {

                    txtSearchData.Text(line); // Siin peaks olema txtSearchData.Text = line; See on siis süntaksi viga
                   
                }

            }


        }
    }



Hmmm, ma nüüd kindel ei ole, aga põhimõtteliselt peaks su programm töötama umbes nii:

Oletame, et tahad väärtust 534 sisestada textboxi:

Vajutad klahv nr "5"-te
EventHandler tuvastab _TextChanged "sündmuse"
kood nüüd otsib,esimese rea, kus sees on "5"
see rida kopeeritakse "txtSearchData" textbox-i
kuna txtSearchData_s on nüüd tolle gps.txt rida, mis sisaldab esimest nr 5-te siis (näiteks 324,664563435,53,42)
EventHandler tuvastab _TextChanged "sündmuse"
nüüd otsib kood seda rida, mis sisaldab esimest nr 5-te(näiteks 324,664563435,53,42)
see rida kopeeritakse "txtSearchData" textbox-i

edasi, kas hakkab "loop"-ima või pigem kuna textbox-is text ei muutu siis kood jõuab ilusti lõpuni.

Aitäh aitamast, ma loobun sellest proovitööst.
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 02.08.2013 18:17:36 vasta tsitaadiga

brixxx kirjutas:
Ma vaatan, et siin on u samasugune rahvas kui paljud töövõtijad, et kohe peab kõike oskama, et töö käigus ei saagi õppida. Mina usun töö käigus õppimist rohkem kui teooria õppimist ainult. Ma ei usu, et saan järgmisesse vooru, aga tahaks proovitöö ikka valmis teha ja saata ära. Kui oleks programmeerimine olnud PHPs ei oleks asi nii hull, seda oskan kõige enam.


Suurem osa tarkusest ja kogemustest tulebki töö käigus. Aga mis imestama paneb on see, et suht teema alguses andis Alan sulle peaaegu valmis lahenduse, aga ka sellega ei osanud sa midagi pihta hakata. Reaalses töös tuleb ette palju keerukamaid probleeme, millega ei aitaks ei googeldamine ega siin foorumis abi küsimine icon_wink.gif
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 60
tagasi üles
vaata kasutaja infot saada privaatsõnum
nexus4
Kreisi kasutaja
nexus4

liitunud: 01.03.2012




sõnum 02.08.2013 18:48:12 vasta tsitaadiga

eesti skype poisid õppisid nädalavahetusega php endale selgeks, et everyday'd arendada. palka lubati ka samas 5000 krooni päevas
Kommentaarid: 29 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 26
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  C#.Net otsingu programm
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.