Fce Vypisu z XML souboru – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Fce Vypisu z XML souboru – .NET – Fórum – Programujte.comFce Vypisu z XML souboru – .NET – Fórum – Programujte.com

 

Mutagen0
Super člen
5. 9. 2010   #1
-
0
-

Zdravim udelal jsem si fci na vypis z XML souboru jenze hazi me error neco ve stylu ze musi mit typ vracene hodnoty apod ...
tak se chci zeptat jestli by jste mi ji nekdo neupravil ...



void public VypisXML(int main_id, string slozka1, string slozka2)
{
XmlDocument xml = new XmlDocument();
xml.Load(Application.StartupPath + @"/setting.xml");
navigator = xml.CreateNavigator();
navigator.MoveToRoot();
navigator.MoveToFirstChild(); //da nas na root
navigator.MoveToRoot();
XPathNavigator MainDir1 = navigator.SelectSingleNode(@"setting/maindir[@id='"+main_id+"']");
MainDir1.MoveToFirstChild();
string vypis_a = MainDir1.GetAttribute("slozka", "");
string vypis_b = MainDir1.GetAttribute("slozka2","");
slozka1 = vypis_a;
slozka2.Text = vypis_b;
}

VypisXML(1, dir_pack_files.Text, slozka_dir.Text);
VypisXML(2, dir_unpack_files.Text, slozka_unpack,Dir.Text);

A u tech VypisXML(); jak mam 2x pod sebou tam me jakoby konci kod (mozna to je tim errorem)
Jinak kdyz uz jsem u toho chtel bych se zeptat jak bych mohl uskutecnit ze bych si naky ty informace v XML souboru menil apod ? Dekuji za odpovedi popripade za vyhubovani co sem udelal blbe :)

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
6. 9. 2010   #2
-
0
-

Vidím tam minimálně 2 drobnosti:

public void VypisXML

XPathNavigator navigator = xml.CreateNavigator();

pokud tedy není navigator nějaká globální

Nahlásit jako SPAM
IP: 85.207.166.–
Mutagen0
Super člen
6. 9. 2010   #3
-
0
-

liborb napsal:
Vidím tam minimálně 2 drobnosti:

public void VypisXML

XPathNavigator navigator = xml.CreateNavigator();

pokud tedy není navigator nějaká globální


Takze to prvni me pomohlo mam tam navigator globalni v tomto kodu ho nemam ...
Jinak problem pretrvava v tomhle


VypisXML(1, dir_pack_files.Text, slozka_dir.Text);
VypisXML(2, dir_unpack_files.Text, slozka_unpack,Dir.Text);

pise mi to Errory v tedlech 2 radku jich je 9 :-D
jedna z nich "Neplatný token , v deklaraci člena rozhraní, třídy nebo struktury. (CS1519)"

kdyztak obr zde


Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
6. 9. 2010   #4
-
0
-

Ty máš volání funkce někde na úrovni definování funkcí a proměnných té třídy? Zavolej to třeba z mainu, nějak takto:



static void Main(string[] args)
{
VypisXML(1, dir_pack_files.Text, slozka_dir.Text);
VypisXML(2, dir_unpack_files.Text, slozka_unpack,Dir.Text);
}

Nahlásit jako SPAM
IP: 85.207.166.–
Mutagen0
Super člen
6. 9. 2010   #5
-
0
-

liborb napsal:
Ty máš volání funkce někde na úrovni definování funkcí a proměnných té třídy? Zavolej to třeba z mainu, nějak takto:


static void Main(string[] args)
{
VypisXML(1, dir_pack_files.Text, slozka_dir.Text);
VypisXML(2, dir_unpack_files.Text, slozka_unpack,Dir.Text);
}


Parada ja to nemel v Mainu aby to nacitalo ze ...
Jinak Script bez potizi ale kdyz sputim program tak mi to zase nic nevypise :-X


public void VypisXML(int main_id, string slozka1, string slozka2)
{
XmlDocument xml = new XmlDocument();
xml.Load(Application.StartupPath + @"/setting.xml");
navigator = xml.CreateNavigator();
navigator.MoveToRoot();
navigator.MoveToFirstChild(); //da nas na root
navigator.MoveToRoot();
XPathNavigator MainDir1 = navigator.SelectSingleNode(@"setting/maindir[@id='"+main_id+"']");
MainDir1.MoveToFirstChild();
string vypis_a = MainDir1.GetAttribute("dir", "");
string vypis_b = MainDir1.GetAttribute("dir2","");
slozka1 = vypis_a;
slozka2 = vypis_b;
}

a vypis mam samozdrejme


VypisXML(1, dir_pack_files.Text, slozka_dir.Text);
VypisXML(2, dir_unpack_files.Text, slozka_unpack,Dir.Text);

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
7. 9. 2010   #6
-
0
-

A co je vůbec ten dir_pack_files? Předáváš do té funkce jeho property Text, ale uvnitř té funkce měníš obsah lokálního řetězce. Lepší bude předat dir_pack_files apod. a místo slozka1 = vypis_a; dát neco.Text = vypis_a; Třeba to bude fungovat :)

Nahlásit jako SPAM
IP: 85.207.166.–
Mutagen0
Super člen
8. 9. 2010   #7
-
0
-

Ne rposte to nefaka :-(

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
8. 9. 2010   #8
-
0
-

Můžeš zkusit i ladění :). A co třeba takové výpisy do konzole? Je vůbec něco v těch řetězcích vypis_a a vypis_b? Nebo se dej kompletní projekt i s testovacími daty ... rozhodně to bude lepší než vzdechy :smile1:

Nahlásit jako SPAM
IP: 85.207.166.–
Mutagen0
Super člen
8. 9. 2010   #9
-
0
-

Reknu ti to takhle ...
Mam kod kterej mi funguje na vybornou akorad sem si ho chtel predelat do fce kvuli tomu ze tam vypisuju vicrat abych nemel zbytecne 2x delsi kod tak proto fce...
kdyztak ti to sem hodim jak mi to funguje

XmlDocument xml = new XmlDocument();

xml.Load(Application.StartupPath + @"/setting.xml");
navigator = xml.CreateNavigator();
navigator.MoveToRoot();
navigator.MoveToFirstChild(); //da nas na root
navigator.MoveToRoot();
XPathNavigator MainDir1 = navigator.SelectSingleNode(@"setting/maindir[@id='1']");
MainDir1.MoveToFirstChild();
string slozka1 = MainDir1.GetAttribute("dir", "");
string slozka2 = MainDir1.GetAttribute("dir2","");
dir_pack_files.Text = slozka1;
slozka_dir.Text = slozka2;
XPathNavigator MainDir2 = navigator.SelectSingleNode(@"setting/maindir[@id='2']");
MainDir2.MoveToFirstChild();
string slozka3 = MainDir2.GetAttribute("dir", "");
string slozka4 = MainDir2.GetAttribute("dir2","");
dir_unpack_files.Text = slozka3;
slozka_unpack_dir.Text = slozka4;

Todle funguje

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
8. 9. 2010   #10
-
0
-

Tak možností, jak tohle řešit, je hodně ... jen mít potřebné informace :) ... jedna obecná možnost je taková, že návratovým typem té funkce bude pole řetězců, ve kterém vrátíš slozka1 až slozka4.

Nahlásit jako SPAM
IP: 85.207.166.–
Mutagen0
Super člen
8. 9. 2010   #11
-
0
-

Ty me porad nechpaes proc mit zbytecne 2x delsi kod kdyz to jde pres funkci kterou pak jenom vypisu ? hmm ... Misto tehlech reci kdybys mi spis rekl ja to zprovoztnit tu fci kterou mam... A hlavne me napadlo je mozny ze kdyz spustim script s prazdnejma TextBoxama a pak je chic pres funci vytahnout tak to mam dobre tu fci ?

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
9. 9. 2010   #12
-
0
-

No ... řekněme, že tě chápu :) a kdybych napsal příspěvek ve tvém stylu, tak bude obsahovat: mě to funguje.

Naštěstí je každý člověk unikát, tak i příspěvky se budou lišit :) Tady je příklad (funkční) funkce :) pro nastavení textu TextBoxu, který je předán jako parametr:

private void SetTextBoxText(Control textBox)

{
textBox.Text = "Nejaky text";
}

// a nekde v kodu volam, kde textBox1 instance TextBoxu na formulari
SetTextBoxText(textBox1);

Nahlásit jako SPAM
IP: 85.207.166.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý