sabing Posted November 18, 2021 at 01:42 AM Report #624647 Posted November 18, 2021 at 01:42 AM Então eu preciso encontrar em um arquivo txt as latitudes e as longitudes e o nome da cidade arquivo txt eu preciso colocar em um datagridview a listas das coordenadas e o nome da cidade mais estou com dificuldade , eu não consigo ler o xml , o procedimento que tenho ler xml , mais esse não <?xml version="1.0" encoding="UTF-8" ?> <searchresults timestamp="Thu, 18 Nov 21 01:36:26 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring="centro, Cuiaba Gerais, Brazil" exclude_place_ids="98415946,241126356,144782900,154971813,240519628,188761987,239459010,176623637,161991581,157650392" more_url="https://nominatim.openstreetmap.org/search/?street=centro&city=Cuiaba+Gerais&country=Brazil&exclude_place_ids=98415946%2C241126356%2C144782900%2C154971813%2C240519628%2C188761987%2C239459010%2C176623637%2C161991581%2C157650392&format=xml&accept-language=pt-BR"> <place place_id="98415946" osm_type="way" osm_id="9704093" place_rank="26" address_rank="26" boundingbox="-19.9281033,-19.9279313,-43.9578232,-43.9576731" lat="-19.9281033" lon="-43.9578232" display_name="Rua Cuiabá, Barro Preto, Regional Centro-Sul, Belo Horizonte, Região Geográfica Imediata de Belo Horizonte, Região Metropolitana de Belo Horizonte, Região Geográfica Intermediária de Belo Horizonte, Minas Gerais, Região Sudeste, 30110-062, Brasil" class="highway" type="residential" importance="0.3" /> <place place_id="241126356" osm_type="way" osm_id="706524527" place_rank="26" address_rank="26" boundingbox="-19.9839298,-19.9838139,-44.0366471,-44.0354535" lat="-19.9838139" lon="-44.0360262" display_name="Rua Cuiaba, Vila Tirol, Barreiro, Belo Horizonte, Região Geográfica Imediata de Belo Horizonte, Região Metropolitana de Belo Horizonte, Região Geográfica Intermediária de Belo Horizonte, Minas Gerais, Região Sudeste, 30662-710, Brasil" class="highway" type="residential" importance="0.3" /> <place place_id="144782900" osm_type="way" osm_id="183653804" place_rank="26" address_rank="26" boundingbox="-19.4709816,-19.4685153,-44.2605449,-44.2602161" lat="-19.4691312" lon="-44.2604628" display_name="Rua Cuiaba, Santo Antônio, Sete Lagoas, Região Geográfica Imediata de Sete Lagoas, Região Geográfica Intermediária de Belo Horizonte, Minas Gerais, Região Sudeste, 35702-383, Brasil" class="highway" type="residential" importance="0.3" /> <place place_id="154971813" osm_type="way" osm_id="219571584" place_rank="26" address_rank="26" boundingbox="-19.8858592,-19.8855258,-43.8565044,-43.8563379" lat="-19.8855674" lon="-43.8564843" display_name="Rua Cuiaba, Vila Eugênio Rossi, Nações Unidas, Carvalho de Brito, Sabará, Região Geográfica Imediata de Belo Horizonte, Região Metropolitana de Belo Horizonte, Região Geográfica Intermediária de Belo Horizonte, Minas Gerais, Região Sudeste, 34590340, Brasil" class="highway" type="residential" importance="0.3" /> <place place_id="240519628" osm_type="way" osm_id="703189713" place_rank="26" address_rank="26" boundingbox="-19.3777459,-19.3772834,-42.5548416,-42.5537423" lat="-19.3775043" lon="-42.5542853" display_name="Rua Cuiaba, São Francisco, Santana do Paraíso, Região Geográfica Imediata de Ipatinga, Região Metropolitana do Vale do Aço, Região Geográfica Intermediária de Ipatinga, Minas Gerais, Região Sudeste, 35167-000, Brasil" class="highway" type="residential" importance="0.3" /> <place place_id="188761987" osm_type="way" osm_id="375570552" place_rank="26" address_rank="26" boundingbox="-19.6290482,-19.6288352,-42.6225288,-42.6210567" lat="-19.6289168" lon="-42.6216973" display_name="Rua Cuiaba, Cava Grande, Marliéria, Região Geográfica Imediata de Ipatinga, Região Geográfica Intermediária de Ipatinga, Minas Gerais, Região Sudeste, Brasil" class="highway" type="tertiary" importance="0.3" /> <place place_id="239459010" osm_type="way" osm_id="697854942" place_rank="26" address_rank="26" boundingbox="-21.36471,-21.3639319,-45.5059779,-45.5059484" lat="-21.3643503" lon="-45.5059779" display_name="Rua Cuiabá, Vila Romana, Três Pontas, Região Geográfica Imediata de Três Pontas - Boa Esperança, Região Geográfica Intermediária de Varginha, Minas Gerais, Região Sudeste, 37190000, Brasil" class="highway" type="residential" importance="0.2" /> <place place_id="176623637" osm_type="way" osm_id="314157083" place_rank="26" address_rank="26" boundingbox="-21.3666097,-21.36471,-45.5059919,-45.5054563" lat="-21.3654966" lon="-45.5059919" display_name="Rua Cuiabá, Padre Vitor, Três Pontas, Região Geográfica Imediata de Três Pontas - Boa Esperança, Região Geográfica Intermediária de Varginha, Minas Gerais, Região Sudeste, 37190000, Brasil" class="highway" type="residential" importance="0.2" /> <place place_id="161991581" osm_type="way" osm_id="246131223" place_rank="26" address_rank="26" boundingbox="-21.0187898,-21.0162602,-46.5251098,-46.5245105" lat="-21.0171977" lon="-46.5248948" display_name="Rua Cuiabá, Novo Horizonte, Bom Jesus da Penha, Região Geográfica Imediata de Passos, Região Geográfica Intermediária de Varginha, Minas Gerais, Região Sudeste, Brasil" class="highway" type="residential" importance="0.2" /> <place place_id="157650392" osm_type="way" osm_id="229320053" place_rank="26" address_rank="26" boundingbox="-20.1462763,-20.1426447,-44.2082966,-44.2067983" lat="-20.1444014" lon="-44.2076298" display_name="Rua Cuiabá, São Sebastião, Brumadinho, Região Geográfica Imediata de Belo Horizonte, Região Metropolitana de Belo Horizonte, Região Geográfica Intermediária de Belo Horizonte, Minas Gerais, Região Sudeste, 35460-000, Brasil" class="highway" type="residential" importance="0.2" /> </searchresults> agora o meu código lendo Sub MostraTexto() Dim alterar As Boolean = False Dim Texto As String = "" Dim Linha() As String = Strings.Split(My.Computer.FileSystem.ReadAllText("I:\msdn2.xml", System.Text.Encoding.Default), ControlChars.CrLf) 'Verifica linha a linha For i As Integer = 0 To Linha.Length - 1 'Se não estiver vazia... If Linha(i) <> "" Then Texto &= Linha(i) & ControlChars.CrLf End If Next MsgBox(Texto) End Sub
programadorvb6 Posted November 18, 2021 at 06:10 PM Report #624657 Posted November 18, 2021 at 06:10 PM Try 'LOAD DOCUMENT Dim doc = Xdocument.Load("C:\Users\kevin.deery\Desktop\myFile.xml") 'GET ATTRIBUTE VALUES For Each val As XElement In doc.Descendants("ProductVariantAttribute") If val.HasAttributes Then MessageBox.Show(val.Attribute("ID").Value) End If Next 'GET ELEMENT VALUES For Each val As XElement In doc.Descendants("ProductVariantAttributeValue") If val.HasElements Then MessageBox.Show(val.Element("Value").Value) End If Next Catch ex As Exception 'THROW ERROR MessageBox.Show(ex.ToString, "Error", MessageBoxButtons.OK) End Try Veja este Link talvez te ajude. ______________________________________________________________________________ Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.
sabing Posted November 18, 2021 at 06:56 PM Author Report #624658 Posted November 18, 2021 at 06:56 PM Então estava pesquisando esse formato é osm XML , como faço para ler ?
sabing Posted November 19, 2021 at 01:21 AM Author Report #624660 Posted November 19, 2021 at 01:21 AM Desse modo amigo não vai funcionar , a biblioteca Xdocument não ler esse tipo de programação , eu estava pesquisando na internet parece que é um tipo de xml osm, tem que ver qual biblioteca que lê esse tipo de programação entendeu? , eu já fiz de tudo e da erro já de cara na leitura
sabing Posted November 19, 2021 at 01:25 AM Author Report #624661 Posted November 19, 2021 at 01:25 AM eu fico imaginado , será que não tem como fazer a leitura em como txt e pegar só a string lat e long com os numeros ?
sabing Posted November 19, 2021 at 02:27 AM Author Report #624662 Posted November 19, 2021 at 02:27 AM Sub ModificarLinha() Dim Texto As String = "" Dim latitude As New ArrayList Dim longitude As New ArrayList Dim Display As New ArrayList Dim Linha() As String = Strings.Split(My.Computer.FileSystem.ReadAllText("I:\msdn2.xml", System.Text.Encoding.Default), ControlChars.CrLf) 'Verifica linha a linha For i As Integer = 0 To Linha.Length - 1 'Se não estiver vazia... If Linha(i) <> "" Then If Linha(i).Contains("lat") Then Texto = Linha(i) 'Aqui vou quebrar espaço por espaço Dim strarr() As String strarr = Texto.Split(" "c) For Each s As String In strarr 'Aqui eu pego somente as lat If s.Contains("lat") Then Dim textoTemporario As String = s.Replace("lat=", "") textoTemporario = textoTemporario.Replace("""", "") latitude.Add(textoTemporario) End If If s.Contains("lon") Then Dim textoTemporario As String = s.Replace("lon=", "") textoTemporario = textoTemporario.Replace("""", "") longitude.Add(textoTemporario) End If Next '---------------------------------- End If ' Texto &= Linha(i) & ControlChars.CrLf End If Next 'MsgBox(Texto) 'My.Computer.FileSystem.WriteAllText("I:\msdn2.xml", Texto, False, System.Text.Encoding.Default) End Sub Então fiz esse trecho hoje , porém não estou conseguindo pegar o display , por favor me ajude, lat, e a long peguei e coloquei em um arraylist display_name="Rua Cuiabá, São Sebastião, Brumadinho, Região Geográfica Imediata de Belo Horizonte, Região Metropolitana de Belo Horizonte, Região Geográfica Intermediária de Belo Horizonte, Minas Gerais, Região Sudeste, 35460-000, Brasil"
sabing Posted November 19, 2021 at 01:22 PM Author Report #624669 Posted November 19, 2021 at 01:22 PM Tem como eu usar o Regex para pegar conteúdo dentro de aspa?
programadorvb6 Posted November 20, 2021 at 09:02 AM Report #624675 Posted November 20, 2021 at 09:02 AM (edited) Link 1 Nota em cima com o exemplo que te dei tens que chamar a biblioteca com a instrução: Imports System.Xml Me manda o ficheiro xml e os outros todos para : PMtQheuL1a93IFOC6wjV@gmail.com Diz-me quais os valores que queres : lat; lon ; e display_name ? Edited November 20, 2021 at 09:40 AM by programadorvb6 ______________________________________________________________________________ Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.
sabing Posted November 20, 2021 at 12:45 PM Author Report #624676 Posted November 20, 2021 at 12:45 PM (edited) Rapaz, ele não lê o arquivo! , eu estou tentando fazer manual mesmo lendo linha por linha , vou te mandar Edited November 20, 2021 at 12:55 PM by sabing
sabing Posted November 20, 2021 at 02:16 PM Author Report #624677 Posted November 20, 2021 at 02:16 PM Sub ModificarLinha() Dim Texto As String = String.Empty Dim latitude As New ArrayList Dim longitude As New ArrayList Dim ende As New ArrayList Dim Linha() As String = Strings.Split(My.Computer.FileSystem.ReadAllText("I:\msdn2.xml", System.Text.Encoding.Default), ControlChars.CrLf) Dim conta As Integer = 14 Dim J As Integer = 0 Dim strTexto As String = String.Empty 'Verifica linha a linha For i As Integer = 0 To Linha.Length - 1 'Se não estiver vazia... If Linha(i) <> "" Then If Linha(i).Contains("lat") Then Texto = Linha(i) 'Aqui vou quebrar espaço por espaço Dim strarr() As String strarr = Texto.Split(" "c) For Each s As String In strarr 'Aqui eu pego somente as lat If s.Contains("lat") Then Dim textoTemporario As String = s.Replace("lat=", "") textoTemporario = textoTemporario.Replace("""", "") latitude.Add(textoTemporario) End If If s.Contains("lon") Then Dim textoTemporario As String = s.Replace("lon=", "") textoTemporario = textoTemporario.Replace("""", "") longitude.Add(textoTemporario) End If Next '---------------------------------- End If Dim str As String = Linha(i) Dim reg = New Regex(""".*?""") Dim matches = reg.Matches(str) For Each item In matches J = J + 1 If (J > 2) And ((J + 12) = conta) Then ende.Add(item.ToString()) End If Next '-------------------------- 'Texto &= Linha(i) & ControlChars.CrLf conta = (conta + 12) End If Next 'MsgBox(Texto) 'My.Computer.FileSystem.WriteAllText("I:\msdn2.xml", Texto, False, System.Text.Encoding.Default) End Sub Eu fiz esse código funcionou porém queria melhorar ele alguém poderia me ajudar?
sabing Posted November 20, 2021 at 03:17 PM Author Report #624678 Posted November 20, 2021 at 03:17 PM Não está funcionado , somente o documento anterior quando eu abaixo outro documento ele não corresponde
programadorvb6 Posted November 21, 2021 at 08:08 AM Report #624679 Posted November 21, 2021 at 08:08 AM (edited) Olá sabing. peço que me envie os ficheiros dentro de um ficheiro zip ou Rar Sem outro assunto me despeço. Vitor Teles. Edited December 1, 2021 at 05:27 PM by programadorvb6 ______________________________________________________________________________ Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now