Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
29.07.2013 02:18:51
C#.Net otsingu programm |
|
|
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 |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
29.07.2013 08:39:22
|
|
|
"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 |
|
 |
Erti-Chris
HV vaatleja

liitunud: 23.07.2011
|
29.07.2013 08:44:14
|
|
|
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 |
|
 |
Alan
HV veteran

liitunud: 12.02.2008
|
29.07.2013 09:06:48
|
|
|
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 |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
29.07.2013 09:18:29
|
|
|
brixxx, kui otsid abi töö tegemisel, võiksid asja vastavalt väljendada.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
29.07.2013 12:11:09
|
|
|
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 |
|
 |
Mnator
HV Guru
liitunud: 18.10.2007

|
29.07.2013 12:23:28
|
|
|
tee töövahendusse oma teema! ei paista kuskilt, et midagi ise oleksid teinud.........
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
29.07.2013 13:10:48
|
|
|
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 |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
29.07.2013 13:56:05
|
|
|
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 |
|
 |
Alan
HV veteran

liitunud: 12.02.2008
|
29.07.2013 13:57:55
|
|
|
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 |
|
 |
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
29.07.2013 14:46:58
|
|
|
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 |
|
 |
Alan
HV veteran

liitunud: 12.02.2008
|
29.07.2013 14:49:40
|
|
|
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 |
|
 |
Dealer14
HV vaatleja
liitunud: 09.02.2004
|
30.07.2013 01:10:33
|
|
|
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 |
|
 |
PitBull
HV kasutaja
liitunud: 31.10.2003
|
30.07.2013 21:27:23
Re: C#.Net otsingu programm |
|
|
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 |
|
 |
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
02.08.2013 00:21:01
Re: C#.Net otsingu programm |
|
|
PitBull kirjutas: |
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 |
|
 |
Alan
HV veteran

liitunud: 12.02.2008
|
02.08.2013 00:29:05
Re: C#.Net otsingu programm |
|
|
brixxx kirjutas: |
PitBull kirjutas: |
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 |
|
 |
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
02.08.2013 00:39:38
|
|
|
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 |
|
 |
Alan
HV veteran

liitunud: 12.02.2008
|
02.08.2013 08:05:21
|
|
|
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 |
|
 |
neros
HV Guru

liitunud: 26.11.2003
|
02.08.2013 11:17:18
|
|
|
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 |
|
 |
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
02.08.2013 11:25:43
|
|
|
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 |
|
 |
Dealer14
HV vaatleja
liitunud: 09.02.2004
|
02.08.2013 12:00:39
|
|
|
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 |
|
 |
brixxx
Lõuapoolik


liitunud: 04.01.2012
|
02.08.2013 17:53:44
|
|
|
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 |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
02.08.2013 18:17:36
|
|
|
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
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
nexus4
Kreisi kasutaja

liitunud: 01.03.2012
|
02.08.2013 18:48:12
|
|
|
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 |
|
 |
|