[ borcha @ 19.09.2010. 11:07 ] @
| Pokusavam od jutros da iscitam samo odredjeni broj stavki i to od odredjene grupe..
Koristim StreamReader sa metodom Split('=') i met. ReadLine().....
recimo...
[GRUPA0]
stavka_1 = Vrednost
stavka_2 = Vrednost
stavka_3= Vrednost
[grupa1]
stavka_1 = Vrednost
stavka_2 = Vrednost
stavka_3= Vrednost
[GRUPA2]
stavka_1 = Vrednost
stavka_2 = Vrednost
stavka_3= Vrednost
recimo ja hocu da izlistam samo [GRUPA1] u ComboListu...
hvala unapred..... |
[ Shadowed @ 19.09.2010. 12:16 ] @
Citas liniju po liniju i proveravas da li je jednako "[grupa2]", ako nije, ignorises, ako jeste, od sledeceg reda pamtis linije sve dok ne naidjes na praznu. Tada si zavrsio i to sto si popamtio ubacujes u ComboBox.
[ borcha @ 19.09.2010. 12:39 ] @
To i pokusavama svo vreme...
Ali nikako da napravim brojac ili petlju kako bih nastavio dalje od stvake _1.
Znaci dodje do [GRUPA1] i iscita naredni red tj. Stavka_1 ali nece dalje. To je i problem!!!
Molio bih te za jedan primer ako mozes??
hvala!!
[ lonelyrider_44 @ 19.09.2010. 13:29 ] @
Da li imash uvek isti broj stavki pod svakom grupom, ili konkretno grupom
1 ?
[ borcha @ 19.09.2010. 14:13 ] @
samo jednu stavku pod [GRUP1] i to prva
STAVKA_1..
a problem je sto nece dalje da ide nego se zavrsi na STAVKA1 po tom grupom. Ja zelim sve stavke pod [GRUPA1]..
;-)
[ lonelyrider_44 @ 19.09.2010. 16:38 ] @
Dobro, kod bi izgledao ovako, otprilike:
Code (csharp):
string stavkaVrednost ="";
void readFile (){
Stream s = File .OpenRead("grupe.ini");
StreamReader sr = new StreamReader (s );
while (!sr .EndOfStream)
{
if (sr .ReadLine() == "[Grupa1]")
{
stavkaVrednost = sr .ReadLine();
}
}
}
Ovim kodom u string stavkaVrednost upisujesh sledecu liniju, ispod linije
u kojoj pishe Grupa1 . Zato sam te pitao koliko imash stavki u toj grupi.
Ako ochekujesh da moze da bude promenljiv broj, onda ovaj kod nece raditi.
Ako ce uvek biti fixno jedna stavka, onda moze i ovako.
[ borcha @ 19.09.2010. 16:47 ] @
Upravo tako izgleda i moj kod....
ponovi cu .. ja sam uspeo da izvucem jednu stavku i da je podelim sa ('=') ali meni trebaju i ostale stavke...!! znaci promenjivo!
[ borcha @ 19.09.2010. 16:58 ] @
File.ini
[ADVERTIZE]
ROW_0=
ROW_1=
ROW_2=
ROW_3=
ROW_4=
ROW_5=
[DEPARTMENTS]
DESCRIPTION_1=Sank
DESCRIPTION_2=Kuhiwa
DESCRIPTION_3=
DESCRIPTION_4=
DESCRIPTION_5=
DESCRIPTION_6=
DESCRIPTION_7=
DESCRIPTION_8=
DESCRIPTION_9=
DESCRIPTION_10=
__
Znaci treba mi sve pod sekcijom [DEPARTMENTS] i sve stavke koje joj pripadaju tj 10 komada. DESCRIPTION_1=Sank, DESCRIPTION_2=Kuhiwa itd...
__
Code:
public void CitanjeOdeljenjaIzINIFil()
{
ListaGrupa_comboBox.Items.Clear();
String BLUCOMINI = @"c:\BluComXMR\BlucomINI.ini";
Stream s = File.OpenRead(BLUCOMINI);
StreamReader sr = new StreamReader(s);
while (!sr.EndOfStream)
{
if (sr.ReadLine() == "[DEPARTMENTS]")
{
string[] stavkaVrednost = sr.ReadLine().Split('=');
ListaGrupa_comboBox.Items.Add(stavkaVrednost[1]);
}
}
[ lonelyrider_44 @ 19.09.2010. 16:59 ] @
Ochekivao sam da cesh odgovoriti direktno ima toliko i toliko, ili da je promenljiv broj u pitanju, pa zato chim sam u mail-u video pochetak tvog posta, nisam dalje gledao.
Code (csharp):
string stavkaVrednost ="";
void readFile (){
Stream s = File .OpenRead("grupe.ini");
StreamReader sr = new StreamReader (s );
while (!sr .EndOfStream)
{
if (sr .ReadLine() == "[Grupa1]")
{
while((stavkaVrednost = sr .ReadLine())!=""){
//ovde kod za splitovanje i ubacivanje u combo ili shta ti vec treba
}
}
}
}
[ borcha @ 19.09.2010. 17:03 ] @
Znaci samo ugnjezdjivanje WHILE(){} ???
[ lonelyrider_44 @ 19.09.2010. 17:11 ] @
Da. Chitaj sve dok ne dodjesh do prazne linije (jer si takav primer naveo na pochetku) ili dok ne dodjesh do sledece grupe (jer si takav primer stavio u pretposlednjem postu), znachi samo uslov varira u zavisnosti da li imash praznu liniju izmedju tih grupa. ako nemash, onda je uslov za taj while da prochitana linija bude razlichita od [sledeca_grupa] .
[ borcha @ 19.09.2010. 18:31 ] @
Kod ne funkcionise!! Daljim prolaskom pokazuje da ima null vrednost!
Ok , nema veze ... valjda ce mi pasti neka ideja pasti na pamet!! ;-)
[ lonelyrider_44 @ 19.09.2010. 19:03 ] @
Pa ne moze tako...Ko ima null vrednost ? U kojoj liniji koda ? Jako si neprecizan. Sad sam probao, kod radi!! Zavisi koji test primer mu pustish.
Evo ti primer ovog koda, podesi samo putanju do fajla: "primer.ini" i probaj. Ako taj ini fajl treba drugachije da izgleda, okachi tu drugu verziju, i takodje reci gde "puca" tvoj program. Po mogucstvu, okachi ceo kod.
program
[ borcha @ 19.09.2010. 19:31 ] @
Ok, ok. Znam da ne moze tako!! Sory.. Malo me ovo nervira pa zurim sa.... Probacu , probacu.. a tebi hvala na strpljenju!!!
[ bojan21 @ 19.09.2010. 19:41 ] @
Napisao sam na brzinu, probao sam samo na jednom primeru:
Code (csharp):
//filePath = putanja do INI datoteke
//section = sekcija koju hoces da procitas
private string[] ReadData (string filePath, string section )
{
List <string> result = new List <string>();
StreamReader sR = new StreamReader (filePath );
string sectionName = "[" + section + "]";
bool dataRead = false;
bool readStart = false;
while (!sR .EndOfStream && !dataRead )
{
string line = sR .ReadLine();
if (readStart )
{
if (line != "")
result .Add(line );
else
dataRead = true;
}
else
{
if (line == sectionName )
readStart = true;
}
}
sR .Close();
return result .ToArray();
}
//na primer, ispis procitanih vrednosti u ListBox
private void button1_Click (object sender, EventArgs e )
{
string[] lines = ReadData ("C:\\test.ini", "MY_SECTION");
foreach (string line in lines )
{
listBox1 .Items.Add(line .Split('=')[1]);
}
}
Pozdrav
[ borcha @ 19.09.2010. 19:51 ] @
Sve je to odlicno!! I meni je kod isti !! Tvoj radi zato sto koristis drugi fajl!! Kod mene se ponavljaju kljucevi i vrednosti..
Evo izlistaj .INI pa ces videti ako je nesto u fajlu problem..(CRVENIM). Ja stvarno sa INI nisam bas radio pa zato malo, hm... vise sam za XML.
I postoji rastojanje izmedju dve grupe!!!
BLUCOM]
VERSION=EUEIOBBB210979
[HEADER]
ROW_0=Pizzeria caffe 00
ROW_1=ANGOLO 00
ROW_2=021/727-059 00
ROW_3=ul. Ise Sekickog 44a 00
ROW_4=00
ROW_5=00
[ADVERTIZE]
ROW_0=
ROW_1=
ROW_2=
ROW_3=
ROW_4=
ROW_5=
[DEPARTMENTS]
DESCRIPTION_1=Sank
DESCRIPTION_2=Kuhiwa
DESCRIPTION_3=
DESCRIPTION_4=
DESCRIPTION_5=
DESCRIPTION_6=
DESCRIPTION_7=
DESCRIPTION_8=
DESCRIPTION_9=
DESCRIPTION_10=
[OPERATORS]
CODE_1=1
NAME_1=Velibor
CODE_2=2
NAME_2=Olga
CODE_3=3
NAME_3=Boris
CODE_4=4
NAME_4=
CODE_5=5
NAME_5=
CODE_6=6
NAME_6=
CODE_7=7
NAME_7=
CODE_8=8
NAME_8=
CODE_9=9
NAME_9=
CODE_10=10
NAME_10=Kasir 10
CODE_11=11
NAME_11=Kasir 11
CODE_12=12
NAME_12=Kasir 12
CODE_13=13
NAME_13=Kasir 13
CODE_14=14
NAME_14=Kasir 14
CODE_15=15
NAME_15=Kasir 15
CODE_16=16
NAME_16=Kasir 16
CODE_17=17
NAME_17=Kasir 17
CODE_18=18
NAME_18=Kasir 18
CODE_19=19
NAME_19=Kasir 19
CODE_20=20
NAME_20=Kasir 20
CODE_21=21
NAME_21=Kasir 21
CODE_22=22
NAME_22=Kasir 22
CODE_23=23
NAME_23=Kasir 23
CODE_24=24
NAME_24=Kasir 24
CODE_25=25
NAME_25=Kasir 25
CODE_26=26
NAME_26=Kasir 26
CODE_27=27
NAME_27=Kasir 27
CODE_28=28
NAME_28=Kasir 28
CODE_29=29
NAME_29=Kasir 29
CODE_30=30
NAME_30=Kasir 30
CODE_31=31
NAME_31=Kasir 31
[SISTEM]
CASH=01
PRINT=0
GRAFICA1=0
GRAFICA1_IMG=0
GRAFICA2=0
GRAFICA2_IMG=0
OBLIGATE=0
TEST_MENY=0
SINGLE=0
SPEED=0
[SETPORT]
PORT=1
SPEED=9600
[SETLNG]
LNG=True
[SETWDTH]
WDTH=22
[SETPHONE]
PHONENM=
PHONEPT=
PHONEPSS=
[VAT]
TAX_2=
TAX_3=
TAX_4=
TAX_5=
TAX_6=
TAX_7=
TAX_8=
TAX_9=
[VALUTE]
DESCRIPTION_1=
CONVERSION_1=
DESCRIPTION_2=
CONVERSION_2=
DESCRIPTION_3=
CONVERSION_3=
DESCRIPTION_4=
CONVERSION_4=
[UNITS]
DESCR_1=
DESCR_2=
DESCR_3=
DESCR_4=
DESCR_5=
[PLUTYPE]
DESCR_1=Sokovi
DESCR_2=Piva
DESCR_3=Zestina
DESCR_4=kolaci
DESCR_5=pizza
DESCR_6=riba
DESCR_7=domaca kuhin
DESCR_8=Ostalo
[ bojan21 @ 19.09.2010. 20:08 ] @
Nema veze ponavljanje sa tim, sekcija je sekcija :). Problem je sto sam pretpostavio (primer iz prvog posta) da su sekcije odvojene praznom linijom (sto u poslednjem primeru nije slucaj). Zameni ovu liniju:
Code (csharp):
if (line != "")
sa ovom:
Code (csharp):
if (line[0] != '[')
Pokusaj sad. :)
[ lonelyrider_44 @ 19.09.2010. 20:41 ] @
Mozda je bolji uslov:
Code (csharp):
if (line.Contains("="))
U svakom sluchaju, lepshe reshenje je predlozio Bojan21 , kachim ti isti program sa preradjenim kodom, slichan Bojanovom reshenju.
[ bojan21 @ 19.09.2010. 21:06 ] @
Mnogo je bolji, pogotovo sto format INI datoteke varira od aplikacije do aplikacije. Svaka cast. :)
P.S. Ako se borcha sad javi i kaze da ne metoda radi, ja cu da obrisem nalog. :)
Pozdrav
[ borcha @ 19.09.2010. 22:30 ] @
Ne radiii!!!!
Hahahah!! Salim se....
nemoj brisati nalog , trebaju nam takvi....... ;-))
Svaka cast!!!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|