[VB] Frage zu Checkboxes & Erstellungstool

06/10/2011 21:30 roteisenklinge#1
Hallo liebe Elitepvpers Community,
ich habe mir mit Visual Basic ein Tool gebastelt, welche mit ein eine XML Datei erstellt, welche später von einem anderen Programm geladen wird.
Soweit hat alles wunderbar geklappt, jedoch hab ich da zwei Probleme.

INFORMATION.

Die XML Datei wird durch verschiedene Textboxen Inhalte gefüllt, welche an speziellen Stellen eingefügt werden.



Nach dem klick auf dem COM-Bottum

Code:
 If CheckBox1.Checked = True Then
            Label21.Text = "<Skill SkillID=& Chr(34)4& Chr(34) IsAttackSkill=& Chr(34) false & Chr(34) />& Chr(34) "
        ElseIf CheckBox2.Checked = True Then
            Label22.Text = "<Skill SkillID=& Chr(34) 2 & Chr(34) IsAttackSkill=& Chr(34) true & Chr(34) HasSingleTarget=& Chr(34) false & Chr(34) CharacterStateFunc=& Chr(34) 55 & Chr(34) />& Chr(34) "
        
        End If

        If RadioButton1.Checked = True Then
            Label23.Text = "spiderd_trade_vendor.xml"
        ElseIf RadioButton2.Checked = True Then
            Label23.Text = "desert_trade_vendor.xml"
        ElseIf RadioButton3.Checked = True Then
            Label23.Text = "spiderd_trade_vendor.xml"

        End If

        Dim writer As New IO.StreamWriter(My.Application.Info.DirectoryPath & "\" & "char_" & TextBox11.Text & ".xml")

        writer.Write("<BotCharacter>" & vbCrLf & "        <BotPosition GlobalX=" & Chr(34) & +TextBox18.Text & Chr(34) & " GlobalY=" & Chr(34) & +TextBox17.Text & Chr(34) & " Range=" & Chr(34) & +TextBox13.Text & Chr(34) & "/>" & vbCrLf & "        <Config DoAttack=" & Chr(34) & TextBox16.Text & Chr(34) & " DoPickUp=" & Chr(34) & TextBox15.Text & Chr(34) & " RestartChatMessage=" & Chr(34) & TextBox14.Text & Chr(34) & "/>" & vbCrLf & "        <AutoLogin AccountAddr=" & Chr(34) & TextBox51.Text & Chr(34) & vbLf & " AccountPort=" & Chr(34) & TextBox4.Text & Chr(34) & " Addr=" & Chr(34) & TextBox41.Text & Chr(34) & " Port=" & Chr(34) & TextBox12.Text & Chr(34) & " Id=" & Chr(34) & TextBox21.Text & Chr(34) & " Pwd=" & Chr(34) & TextBox31.Text & Chr(34) & " Slot=" & Chr(34) & "0" & Chr(34) & "/>" & vbCrLf & "        <Skills>" & vbCrLf & "                " & Label21.Text & vbCrLf & "                " & Label22.Text & vbCrLf & "                </Skills>" & vbCrLf & "<EventScripts>" & vbCrLf & "                    " & "<EventScript path=" & Chr(34) & Label23.Text & Chr(34) & "triggerCondition=" & Chr(34) & "NoPotions" & Chr(34) & "/>" & Chr(34) & vbCrLf & "                    " & "<EventScript path=" & Chr(34) & Label23.Text & Chr(34) & "triggerCondition=" & Chr(34) & "InventoryFull" & Chr(34) & "/>" & Chr(34) & vbCrLf & "            </EventScripts>" & vbCrLf & "        <FriendList>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox3.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox2.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox10.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox6.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox7.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox8.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox5.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox9.Text & Chr(34) & "/>" & vbCrLf & "        </FriendList>" & vbCrLf & "</BotCharacter>")



    End Sub

1. Problem. Nachdem ausführen des CMD Bottums wird die Datei Char_X.xml erstellt, jedoch mit 0kb und nichts wird eingetragen. Jedoch auch keine Fehlermeldung etc....

Vielen Dank für eure Hilfe !

lg Roteisenklinge
06/10/2011 23:15 xNopex#2
Schonmal versucht den Stream nach dem Schreiben zu schließen? Davor vllt. nochmal Flush() aufrufen.
06/10/2011 23:28 roteisenklinge#3
Quote:
Originally Posted by xNopex View Post
Schonmal versucht den Stream nach dem Schreiben zu schließen? Davor vllt. nochmal Flush() aufrufen.
Hey,
also bin eben genau auf dieses gekommen.
Ich erstellte 8 XMls, jede war mit 0kb, als ich das Programm schloss =>> wurden sie geschrieben.
Was ich jedoch nicht verstehe, der letzte Teil wird einfach nicht weitergeschrieben:

Code:
"                    <Friend name=" & Chr(34) & TextBox2.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox10.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox6.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox7.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox8.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox5.Text & Chr(34) & "/>" & vbCrLf & "                    <Friend name=" & Chr(34) & TextBox9.Text & Chr(34) & "/>" & vbCrLf & "        </FriendList>" & vbCrLf & "</BotCharacter>")



    End Sub
Dieser Teil um genau zu sein!

Hab den Code mal überprüfen lassen :

Warnung 1 CA2000 : Microsoft.Reliability : Rufen Sie in der 'Form1.Button2_Click(Object, EventArgs)'-Methode System.IDisposable.Dispose für das Objekt "'writer'" auf, bevor alle Verweise darauf außerhalb des gültigen Bereichs liegen. C:\Users\JB\documents\visual studio 2010\Projects\XML Generator\XML Generator\Form1.vb 364 XML Generator


Quote:
Davor vllt. nochmal Flush() aufrufen.
inwiefern nutzte ich das, kenne den befehl Flush nicht ;)
Danke aber schonmal^^
06/10/2011 23:38 xNopex#4
Quote:
nwiefern nutzte ich das, kenne den befehl Flush nicht
MSDN?
>> [Only registered and activated users can see links. Click Here To Register...]

Quote:
Ich erstellte 8 XMls, jede war mit 0kb, als ich das Programm schloss =>> wurden sie geschrieben
Weil der Stream erst die Daten in das Device schreibt, wenn der Stream geschlossen wird oder man ihn durch Flush() zwingt. AFAIK.
06/10/2011 23:58 roteisenklinge#5
Quote:
Originally Posted by xNopex View Post
MSDN?
>> [Only registered and activated users can see links. Click Here To Register...]


Weil der Stream erst die Daten in das Device schreibt, wenn der Stream geschlossen wird oder man ihn durch Flush() zwingt. AFAIK.
hey,
nochmals vielen Dank :). Doch wie bau ich das rein. Die Infos von MDSN sind nicht so der Hammer :D Wäre lieb, wenn dus mir zeigen könntest.
06/11/2011 10:51 xNopex#6
Quote:
Die Infos von MDSN sind nicht so der Hammer
Doch sind sie.

Quote:
Wäre lieb, wenn dus mir zeigen könntest.
Code:
writer.Flush()
06/12/2011 00:05 roteisenklinge#7
Quote:
Originally Posted by xNopex View Post
Doch sind sie.


Code:
writer.Flush()
Füge ich nun die writer.Flush anstatt writer.write kommt der Fehler:

Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "Write" diese Anzahl von Argumenten akzeptiert. C:\Users\JB\documents\visual studio 2010\Projects\XML Generator\XML Generator\Form1.vb 366 9 XML Generator
Was nun:D?
06/12/2011 11:17 xNopex#8
Du sollst das nicht anstatt, sondern zusätzlich hinzufügen :-/ Les dir doch mal die verdammte Doku in der MSDN durch, bevor du so einen Müll fabrizierst.
06/12/2011 11:52 roteisenklinge#9
Quote:
Originally Posted by xNopex View Post
Du sollst das nicht anstatt, sondern zusätzlich hinzufügen :-/ Les dir doch mal die verdammte Doku in der MSDN durch, bevor du so einen Müll fabrizierst.
Servus,
jo da haste recht. Habe mir aber heute Nacht alles nochmal angeschaut.
Habe writer.Close () vergesseh, kein wunder das ers nicht geschrieben hat.