hpires24 0 Denunciar post Postado Julho 3, 2008 Boa tarde precisava de uma ajuda se me pode ser facultada, estou usando o visual studio e programando para mobilidade sobre windows mobile 5.0 o que estou fazendo é apenas preencher um form e depois com os dados preenchidos nesse formulario gerar um xml isso ai eu consigo mas quero por exemplo que o primeiro formulario se chame LinhasCampo1.xml depois ao inserir mais dados no fomr crie outro ficheiro LinhasCampo2.xml ate aqui eu consigo mas quando eu vou inserir mais dados numa 3 etapa ele escreve esses dados em cima do LinhasCampo2.xml e eu pretendia que criasse um LinhasCampo3.xml passo a mostrar o codigo e agradecia ajuda por favor, sem mais assunto e agradecendo desde ja Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim i As Integer i = 1 Dim nomexml As String Dim n As Integer n = 5 'nomexml = "\My Documents\LinhasCampo.xml" nomexml = "\My Documents\LinhasCampo.xml" ' For i = 1 To n If Not File.Exists(nomexml) Then Dim writer As New XmlTextWriter(nomexml, Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() 'escreve alguns espaços entre os nodes writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() 'escreve o XML para o arquivo e fecha o escritor writer.Close() MsgBox("Arquivo XML gerado com sucesso.") Else 'Dim nomexml As String nomexml = "\My Documents\LinhasCampo" & i & ".xml" Dim writer As New XmlTextWriter(nomexml, Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() MsgBox("Arquivo XML gerado com sucesso.") i = i + 1 End If 'Next End Sub Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 3, 2008 Movido Plataforma .NET » Visual Studio .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET Para fazer isso seu código deve estar dentro de um laço para sua variável i ser incrementada, reparei que tem um for comentado, terá que usar algo para fazer este laço. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 4, 2008 Pois e como eu faço isso???desculpem mas nao entendo eu ja tentei utilizar um for mas comentei mesmo pq o resultado é o mesmo Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 4, 2008 Exemplo simples: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load EscreveXml(5) End Sub Protected Sub EscreveXml(ByVal Quant As Integer) Dim i As Integer For i = 0 To Quant Response.Write("Nome do Xml é igual: Xml" & i & "<br />") Next d End Sub Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 4, 2008 Obrigado pela ajuda de voces mas ate ao momento ja exprimentei no exemplo acima e nao funciona :( Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 4, 2008 O que não funcionou no exemplo acima?? Deu algum erro? Basta no lugar do Response.Write colocar seu código que escreve seu Xml. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 4, 2008 Protected Sub EscreveXml(ByVal Quant As Integer) Dim i As Integer Dim nomexml As String For i = 0 To Quant nomexml = "\My Documents\LinhasCampo.xml" If Not File.Exists(nomexml) Then Dim writer As New XmlTextWriter(nomexml, Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() MsgBox("Arquivo XML gerado com sucesso.") Else 'For i = 1 To n nomexml = "\My Documents\LinhasCampo" & i & ".xml" Dim writer As New XmlTextWriter(nomexml, Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() 'maior = nomexml = "\My Documents\LinhasCampo" & i + 1 & ".xml" MsgBox("Arquivo XML gerado com sucesso.") ' Next ' i = i + 1 End If Next End Sub Eu tou a fazer assim e o q acontece é q ele escreve por exemplo 5 vezes ficehiros com o nome diferente tipo Linhascampo1.xml linhascampo2.xml ...etc mas com o mesmo conteudo e eu queria qd aparecesse a msgbox de arquivo escrito eu deposi digitasse outros valores no form mas que aparecesse o linhascampo2.xml depois dou ok e insiro outros valores no form e q me escrevesse o linhascampo3.xml fiz-me entender?? Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 4, 2008 Nem agradeci a sua ajuda estou tao desesperado tentando fazer isso q acabei por me esquecer mas muito obrigado amigo Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 4, 2008 Hum... Agora entendi, é mais fácil do que imaginei, não precisará do for então. Antes de eu postar o código em vão, sua aplicação é web?? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 4, 2008 Obrigado você é um amigo mesmo, relativamente a minha aplicação nao é uma aplicação para windows mobile 5.0 quis dizer q nao é uma aplicação web mas sim para windows mobile 5 Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 6, 2008 Desculpem o incomodo agradecia que se alguem soubesse esta solução me ajudasse pois tinha urgencia de ter feito para amanha e ate agora ainda nao consegui Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 7, 2008 Fiz o seguinte teste e deu certo. Imports System.Xml Public Class Form1 Dim Cont As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Cont += 1 Dim writer As New XmlTextWriter("Xml" & Cont & ".xml", Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", "Prop_id") writer.WriteElementString("Sector", "Sector") writer.WriteEndElement() 'escreve alguns espaços entre os nodes writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() 'escreve o XML para o arquivo e fecha o escritor writer.Close() MsgBox("Arquivo XML gerado com sucesso.") End Sub Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 7, 2008 Muito obrigado Bruno voce é super legal segundo os testes que fiz esta a funcionar correctamente muito obrigado mesmo nao sei como lhe agradecer. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 7, 2008 So me falta um pequenino teste que é assim se eu tenho ja um ficheiro com esse nome no directorio entao cria outro com o i acima desse ou seja imaginemos que tenho la os seguintes ficheiros linhascampo1.xml, linhascampo2.xml, linhascampo3.xml entao o que ele vai fazer qd criar outra linha vai criar um linhascampo4.xml tou a tentar fazer isto do seguinte modo: Dim i As Integer Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click i += 1 Dim nomexml As String Dim maior As String Dim n As Integer n = 5 If File.Exists("\My Documents\LinhasCampo" & i & ".xml") Then 'File.Create("\My Documents\LinhasCampo" & i + 1 & ".xml") Dim writer As New XmlTextWriter("\My Documents\LinhasCampo" & i + 1 & ".xml", Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() MsgBox("Arquivo XML gerado com sucesso.") Else Dim writer As New XmlTextWriter("\My Documents\LinhasCampo" & i & ".xml", Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() 'maior = nomexml = "\My Documents\LinhasCampo" & i + 1 & ".xml" MsgBox("Arquivo XML gerado com sucesso.") ' Next i = i + 1 End If mas o que me acontece é que ele so faz o teste para o primeiro ou seja se existe um linhascampo1.xml e existe um linhascampo2.xml ele escreve em cima do linhascampo2.xml e depois escreve o linhascampo3.xml e eu pretendia como disse acima que ele verificasse no directorio se existe e começaria a escrever a partir do mais alto linhascampo&i&.xml, isto sera possivel fazer?? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 7, 2008 O mais correto seria fazer a verificação, ae depois chamar sua função separadamente que cria o Xml, mas uma forma fácil de fazer isso será. Logo abaixo do seu primeiro IF: If File.Exists("\My Documents\LinhasCampo" & i & ".xml") ThenChame o evento do próprio botão: Button2_Click_1(sender, e)Desta forma, ele chamará o botão de novo e irá incrementar sua variável novamente, até achar um arquivo que não exista no servidor para criar.Seu código deve ficar da seguinte forma: Dim i As Integer Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click i += 1 Dim nomexml As String Dim maior As String Dim n As Integer n = 5 If File.Exists("\My Documents\LinhasCampo" & i & ".xml") Then Button2_Click_1(sender, e) 'File.Create("\My Documents\LinhasCampo" & i + 1 & ".xml") Dim writer As New XmlTextWriter("\My Documents\LinhasCampo" & i + 1 & ".xml", Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() MsgBox("Arquivo XML gerado com sucesso.") Else Dim writer As New XmlTextWriter("\My Documents\LinhasCampo" & i & ".xml", Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() 'maior = nomexml = "\My Documents\LinhasCampo" & i + 1 & ".xml" MsgBox("Arquivo XML gerado com sucesso.") ' Next i = i + 1 End If Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 7, 2008 Antes de mais fica mais um agradecimento pela sua ajuda e atenção Bruno exprimentei o seu exemplo e funciona legal 5 estrelas mesmo você é genial. Como nao conseguia chegar a essa solução deixo outro codigo com o qual tb funciona ele criar um xml peladata de sistema ao segundo o qual será muito dificil o utilizador num segundo preencher o formulario todo e tb fica a funcionar segue codigo abaixo: Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim nome As String nome = "\My Documents\LinhasCampo" & Format(Now, "HHmmss") & ".xml" Dim writer As New XmlTextWriter(nome, Nothing) writer.WriteStartDocument() writer.Formatting = Formatting.Indented writer.WriteStartElement("Linhas") writer.WriteStartElement("Linha") writer.WriteElementString("Prop_id", Me.TextBoxProp.Text) writer.WriteElementString("Sector", Me.Cb3.SelectedValue) writer.WriteElementString("Linha", Me._wtxtWrite.Text) writer.WriteElementString("Arvore", Me.TextBoxQtArvores.Text) writer.WriteElementString("TipoPlanta", Me.cbtipoplanta.SelectedValue) writer.WriteElementString("Ano", Me.TextBoxAno.Text) writer.WriteElementString("VariedadePE", Me.CbVPE.SelectedValue) writer.WriteElementString("AnoEnx", Me.Tbanoenx.Text) writer.WriteElementString("MesEnx", Me.TextBoxmesenx.Text) writer.WriteElementString("Variedade", Me.CbVariedade.SelectedValue) writer.WriteElementString("Cor", Me.cbcor.SelectedValue) writer.WriteEndElement() writer.WriteWhitespace("" & Chr(10) & "") writer.WriteFullEndElement() writer.Close() 'maior = nomexml = "\My Documents\LinhasCampo" & i + 1 & ".xml" MsgBox("Arquivo XML gerado com sucesso.") ' Next ' i = i + 1 'File.Create("\My Documents\LinhasCampo" & i + 1 & ".xml") 'Me._wlblInfos.Text = "" 'Me.TextBoxProp.Text = "" ''Me.Cb3.SelectedValue = "" ''Me._wtxtWrite.Text 'Me.TextBoxQtArvores.Text = "" ''Me.cbtipoplanta.SelectedValue 'Me.TextBoxAno.Text = "" ''Me.CbVPE.SelectedValue 'Me.Tbanoenx.Text = "" 'Me.TextBoxmesenx.Text = "" ' EscreveXml(5) End Sub talvez nao seja a melhor solução mas como nao vi logo o seu codigo Bruno foi a melhor solução que eu tinha. No entao obrigado, e se tiver um tempinho como eu posso por exemplo guardar todos os valores que insiro nas textbox e combobox acima numa string? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 7, 2008 A idéia será a mesma da variável integer, mas terá que ser uma variável string. E toda vez que você for alimentá-la basta pegar o valor antigo concatenado com o valor novo que foi preenchido no seu TextBox. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 8, 2008 boa tarde obrigado mais uma vez bruno pela sua ajuda Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 8, 2008 Tópico resolvido?? Compartilhar este post Link para o post Compartilhar em outros sites
hpires24 0 Denunciar post Postado Julho 10, 2008 Sim resolvido bruno desculpe a demora mas estive ausente abraço e mais uma vez um grande obrigado Compartilhar este post Link para o post Compartilhar em outros sites