"Multi Converter" – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

"Multi Converter" – .NET – Fórum – Programujte.com"Multi Converter" – .NET – Fórum – Programujte.com

 

Wroxx0
Duch
9. 10. 2012   #1
-
0
-

Zdravím, takže snažím sa spraviť konvertér aby mi z tohto

<object name="script 1">
    <position>POS</position>
    <rotation>ROT</rotation>
    <model>MODEL</model>
  </object>

Spravilo toto:

CreateObject(MODEL, POS, ROT);

Proste vyťahať údaje do stringu a potom ich už iba niekde použiť

Spravil som si:

Dim position As String = TextBox1.Text.Split(New String() {"<position>"}, StringSplitOptions.None)(1).Split("</position>")(0)
Dim rotation As String = TextBox1.Text.Split(New String() {"<rotation>"}, StringSplitOptions.None)(1).Split("</rotation>")(0)
Dim model As String = TextBox1.Text.Split(New String() {"<model>"}, StringSplitOptions.None)(1).Split("</model>")(0)

TextBox1.Text = "CreateObject(" & model & ", " & position & ", " & rotation & ");" & vbNewLine

Všetko krásne funguje, ale funguje to len na konvertovanie JEDNEHO "scriptu", tzn, že ked tam tých scriptov dám viac napr.:

<object name="script 1">
    <position>POS</position>
    <rotation>ROT</rotation>
    <model>MODEL</model>
  </object>

<object name="script 2">
    <position>POS</position>
    <rotation>ROT</rotation>
    <model>MODEL</model>
  </object>

tak mi to vytiahne do stringu len ten posledný "script" a ja by som to potreboval aby to fungovalo na viac.. Dá sa to nejako spraviť ? Dík

Nahlásit jako SPAM
IP: 95.103.136.–
Vaizo0
Stálý člen
9. 10. 2012   #2
-
0
-

Zdravím,

tady je kód, který ti to vrátí v poli:

var strings = 
    XDocument.Parse("<root>" + xml + "</root>")
             .Root
             .Elements("object")
             .Select(x => string.Format("CreateObject({0}, {1}, {2});",
                           x.Element("model").Value, 
                           x.Element("position").Value, 
                           x.Element("rotation").Value)
                     );

Budeš-li z toho chtít mít jeden string oddělený odřádkováním, zavolej nad tím toto:

var vysledek = string.Join("\r\n", strings);

Jinak pro příště doporučuji nastudovat, jak se pracuje s XML. V .NETu na to je třeba XmlDocument nebo Linq to XML, který jsem použil já.

Hezký den

Nahlásit jako SPAM
IP: 85.93.127.–
RomanZ
~ Anonymní uživatel
272 příspěvků
9. 10. 2012   #3
-
0
-

Pokud k tomu chceš přistupovat jako k textu, tak to napřed rozděl (split) podle 'object' a teprve v těchto částech hledej 'position' a 'rotation'.

Lepší přístup by ale byl s tím pracovat jako s XML, pro což má .NET docela pěknou podporu.

Nahlásit jako SPAM
IP: 90.176.60.–
Vaizo0
Stálý člen
9. 10. 2012   #4
-
0
-

Sorry, zapomněl jsem, že to máš v VBčku:

Dim strings = XDocument.Parse("<root>" & Xml & "</root>") _
                      .Root.Elements("object") _
                      .[Select](Function(x) String.Format("CreateObject({0}, {1}, {2});", _
                                 x.Element("model").Value, x.Element("position").Value, x.Element("rotation").Value))

a proměnná xml je TextBox1.Text

Nahlásit jako SPAM
IP: 85.93.127.–
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, 5 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ý