[ toroman @ 23.12.2007. 19:10 ] @
Dakle, igram se sa Javom i .NOT znam samo površno, toliko da ne znam ni kako da pročitam neki ulaz :)

Radi se o tome da na takmičenjima iz informatike često bude dat neki ulaz iz fajla ili konzole, tipa
N
a b c d
broj broj string
broj broj string
...

E sad u Javi postoji Scanner za pojednostavljenje čitanja takvih ulaza i za one koji ne znaju on ima metode nextInt, nextLine, setDelimiter itd.

Pitam se kako se to radi u .NET-u, odnosno C#?

Do sada sam problem rešavao tako što čitam liniju po liniju sa Console.ReadLine() pa onda Split() međutim ne sviđa mi se to riješenje, jer smara, a i Split može da razdvaja samo po karakteru, a šta ako nekad treba po nekom stringu...

Eto ljudi moji, pozdrav!
[ toroman @ 24.12.2007. 21:25 ] @
Nije valjda da ni među silnim dodacima u .NET 3.5 nema nečeg ovakvog?
[ mmix @ 24.12.2007. 23:43 ] @
Ja koliko znam ne postoji verzija skenera za .NET
[ toroman @ 25.12.2007. 08:11 ] @
Ma uredu je meni sto nema bas Scanner, ali ima li nesto barem slicno,
kao scanf ili ??? Mislim scanf u Javi nije moguc, dok u C# moze zbog
out i ref parametara :( Bas steta ako ga nema.
[ NPGD @ 31.12.2007. 08:22 ] @
Ne postoji verzija Scaner u C#.......
Da procitas ulaz u C# treba ti System.Console.ReadLine() .....a za ispis System.Console.WriteLine() ili samo Write() ako hoces u jednom redu.......

Nadam se da ti je donekle pomoglo ovo ako imas jos pitanja posalji pm........

Pozz ....
[ mmix @ 31.12.2007. 08:51 ] @
Covek je vec rekao da mu Console.ReadLine ne odgovara kao resenje.
[ Shadowed @ 02.01.2008. 13:23 ] @
Citat:
toroman: a i Split može da razdvaja samo po karakteru, a šta ako nekad treba po nekom stringu...

Verovatno ti ne pomaze narocito, ali moze Split po String-u.
[ Fedya @ 02.01.2008. 14:16 ] @
System.IO.StreamReader
[ Predrag Glumac @ 02.01.2008. 16:42 ] @
Inace ne vidim razlog za scanner u .net-u, jer ako su parametri odvojeni spejsom i redosled je odredjen, string.split i valuetype.parse zavrsice posao.

[Obrisan deo koji se odnosi na obrisanu poruku.]

[Ovu poruku je menjao Shadowed dana 02.01.2008. u 22:41 GMT+1]
[ toroman @ 02.01.2008. 21:08 ] @
Jel' toliko teško da se otvori nova tema?

Stvarno bruka ovaj C#. A i taj Split sa stringom ne znam baš kako ide, gledao sam prototipove, ima ih 6 i ono, nije mi baš očigledno, može neki primer Shadowed?

[ Predrag Glumac @ 02.01.2008. 21:27 ] @
Sto bruka, jer ne dobijas bash sve na tacni
Pa recimo da imas format ulaza kao int-kalauz-decimal-kalauz-string (12kalauz3.14kaluzDjura):
Code:

string[] parms ;
int i;
decimal d;
string s;

parms = inputLine.Parse("kalauz");
i = Int32.Parse(parms[0]);
d = Decimal.Parse(parms[1]);
s = parms[2];


[ toroman @ 02.01.2008. 21:46 ] @
Pa ne da ne dobijam na tacni, nego da ne uvredim nikog, ne dobijam ništa.

Šta je ovo inputLine.Parse ? Ako misliš na Split, to ti neće proći.

Svejedno opet treba neki scanner ili sličan objekat. Nadam se da ova klasa što je kolega dade može nešto da pomogne...
[ Shadowed @ 02.01.2008. 22:09 ] @
Citat:
toroman: Stvarno bruka ovaj C#. A i taj Split sa stringom ne znam baš kako ide, gledao sam prototipove, ima ih 6 i ono, nije mi baš očigledno, može neki primer Shadowed?

Code:

string Source = "part1][part2][part3";
string[] Separator = { "][" };
string[] Parts = Source.Split(Separator, System.StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < Parts.Length; i++) {
    MessageBox.Show(Parts[i]);
}


Edit: Length umesto Count.

[Ovu poruku je menjao Shadowed dana 02.01.2008. u 23:24 GMT+1]
[ toroman @ 02.01.2008. 22:13 ] @
Joj mrak mi pade na oci od ovoga... Hvala u svakom slucaju.
[ Shadowed @ 02.01.2008. 22:25 ] @
Btw, ako radis sa .net Framework 3.5 mozes da napravis Extended method koji prihvata samo jedan String umesto niza.
[ toroman @ 02.01.2008. 22:33 ] @
Extra, to su "pozajmili" iz AspectJ-a ;)

Doobro, ono, jest' dugačko ali radi. Ipak moram da nastavim potragu za nečim praktičnijim, za takmičenja... Scannerrrrr :)