+ Rispondi al Thread
Pagina 2 di 4 primaprima 1234 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 32

Discussione: Estrazione caratteri da una stringa

  1. #11
    ljt
    ljt non è in linea Scolaretto
    Post
    175
    Quote Originariamente inviato da patel45 Visualizza il messaggio
    mettilo su dropbox o simili e posta il link
    Grazie Patel, ecco qua il file:

    https://www.dropbox.com/s/ra9tuvovql...lenco.txt?dl=0

  2. #12
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,446
    Blogs
    5
    Con il file che hai mandato e il codice che ti ho suggerito

    codice:
            Dim elenco As String = System.IO.File.ReadAllText( "elenco.txt" )
            Dim v() As String = Strings.Split(elenco, ":")
            For Each s As String In v
                If s.Contains("power") Then
                    Console.WriteLine(s.Trim.Substring(0, s.IndexOf(Environment.NewLine)))
                End If
            Next
    ottengo l'elenco corretto.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #13
    patel45 ora è in linea Scolaretto Ultimo blog: recupero dati da pagina html
    Post
    363
    Blogs
    1
    confermo, anche a me funziona, però vedo la scritta Linux, dovresti spiegare meglio da dove proviene la stringa in questione

  4. #14
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,446
    Blogs
    5
    linuxpc

    è il nome di uno dei pc
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  5. #15
    ljt
    ljt non è in linea Scolaretto
    Post
    175
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Con il file che hai mandato e il codice che ti ho suggerito

    codice:
            Dim elenco As String = System.IO.File.ReadAllText( "elenco.txt" )
            Dim v() As String = Strings.Split(elenco, ":")
            For Each s As String In v
                If s.Contains("power") Then
                    Console.WriteLine(s.Trim.Substring(0, s.IndexOf(Environment.NewLine)))
                End If
            Next
    ottengo l'elenco corretto.
    Grazie AntonioG, funziona alla grande!!!.
    L'ultimo dubbio, se concesso .
    Ho modificato il codice perché vorrei riprendere l'elenco non da un file ma direttamente dal comando che genera la lista:
    Ho provato a modificare il codice nel seguente modo:
    codice:
                Dim elenco As String = cmd.Result.ToString
                Dim v() As String = Strings.Split(elenco, ":")
                For Each s As String In v
                    If s.Contains("power") Then
                        Console.WriteLine(s.Trim.Substring(0, s.IndexOf(Environment.NewLine)))
                    End If
                Next
    Dove cmd.result.string contiene la stringa identica contenuta nel file elenco.txt
    Ma mi dice:
    codice:
    La lunghezza non può essere minore di zero.
    Nome parametro: length
    Il contenuto della stringa è il seguente:
    codice:
    uuid ( RO)           : f51bf12f-478c-79ed-c7bb-4eddeb8dc01f      name-label ( RW): computer1     power-state ( RO): running   uuid ( RO)           : 28fbd099-47e0-4c5e-9cde-c072edbc998c      name-label ( RW): Control domain on host: server01     power-state ( RO): running   uuid ( RO)           : 86689d31-3161-148a-9443-2987999228b4      name-label ( RW): pc01     power-state ( RO): halted   uuid ( RO)           : 6d223d11-77d4-9e04-94f4-e0a78abccdd0      name-label ( RW): Windows-pc     power-state ( RO): halted   uuid ( RO)           : 127d385c-266f-4903-4827-4e4859c94b5c      name-label ( RW): linuxpc     power-state ( RO): halted   "
    Ovviamente non è identato, ma tutto di seguito.

    Non capisco perché venga segnalato il fatto che la stringa non può essere minore di zero.

    Grazie ancora
    Ultima modifica di ljt; 28-11-2019 12:22 

  6. #16
    ljt
    ljt non è in linea Scolaretto
    Post
    175
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    linuxpc

    è il nome di uno dei pc
    Esatto è il nome di un pc facente parte di un cluster di dominio di VM.

  7. #17
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,446
    Blogs
    5
    Se hai un errore allora cmd.result.string NON contiene la stringa identica contenuta nel file elenco.txt.

    La stringa visualizzata in quel modo non ci dice nulla sul suo contenuto in termini di caratteri di controllo.

    Molto probabilmente non contiene caratteri vbCrLf ma solo vbCr

    Se non ci dai un file proveniente dal comando esattamente come arriva dal comando possiamo fare solo ipotesi.
    Ferma con un breakpoint l'esecuzione e mostra con una immagine il contenuto di elenco in debugging
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  8. #18
    ljt
    ljt non è in linea Scolaretto
    Post
    175
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Se hai un errore allora cmd.result.string NON contiene la stringa identica contenuta nel file elenco.txt.

    La stringa visualizzata in quel modo non ci dice nulla sul suo contenuto in termini di caratteri di controllo.

    Molto probabilmente non contiene caratteri vbCrLf ma solo vbCr

    Se non ci dai un file proveniente dal comando esattamente come arriva dal comando possiamo fare solo ipotesi.
    Ferma con un breakpoint l'esecuzione e mostra con una immagine il contenuto di elenco in debugging
    Ecco qui l'immagine che viene visualizzata:
    img.png

  9. #19
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,446
    Blogs
    5
    No così non si capisce ... intendevo il contenuto della stringa in hex. Usa questo codice

    codice:
            Dim s As String = ""
            Dim elenco As String = System.IO.File.ReadAllText("elenco.txt")
            For c As Integer = 0 To elenco.Length - 1
                s &= Conversion.Hex(Strings.Asc(elenco.Substring(c, 1).ToString())) & " "
            Next
            Console.WriteLine(s)
    e mostra il contenuto della finestra di output
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  10. #20
    ljt
    ljt non è in linea Scolaretto
    Post
    175
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    No così non si capisce ... intendevo il contenuto della stringa in hex. Usa questo codice

    codice:
            Dim s As String = ""
            Dim elenco As String = System.IO.File.ReadAllText("elenco.txt")
            For c As Integer = 0 To elenco.Length - 1
                s &= Conversion.Hex(Strings.Asc(elenco.Substring(c, 1).ToString())) & " "
            Next
            Console.WriteLine(s)
    e mostra il contenuto della finestra di output
    Ok, questa è la schermata in debug:

    Allegato 2595

    Riporto comunque anche la stringa:
    codice:
    75 75 69 64 20 28 20 52 4F 29 20 20 20 20 20 20 20 20 20 20 20 3A 20 66 35 31 62 66 31 32 66 2D 34 37 38 63 2D 37 39 65 64 2D 63 37 62 62 2D 34 65 64 64 65 62 38 64 63 30 31 66 D A 20 20 20 20 20 6E 61 6D 65 2D 6C 61 62 65 6C 20 28 20 52 57 29 3A 20 63 6F 6D 70 75 74 65 72 31 D A 20 20 20 20 70 6F 77 65 72 2D 73 74 61 74 65 20 28 20 52 4F 29 3A 20 72 75 6E 6E 69 6E 67 D A D A D A 75 75 69 64 20 28 20 52 4F 29 20 20 20 20 20 20 20 20 20 20 20 3A 20 32 38 66 62 64 30 39 39 2D 34 37 65 30 2D 34 63 35 65 2D 39 63 64 65 2D 63 30 37 32 65 64 62 63 39 39 38 63 D A 20 20 20 20 20 6E 61 6D 65 2D 6C 61 62 65 6C 20 28 20 52 57 29 3A 20 43 6F 6E 74 72 6F 6C 20 64 6F 6D 61 69 6E 20 6F 6E 20 68 6F 73 74 3A 20 73 65 72 76 65 72 30 31 D A 20 20 20 20 70 6F 77 65 72 2D 73 74 61 74 65 20 28 20 52 4F 29 3A 20 72 75 6E 6E 69 6E 67 D A D A D A 75 75 69 64 20 28 20 52 4F 29 20 20 20 20 20 20 20 20 20 20 20 3A 20 38 36 36 38 39 64 33 31 2D 33 31 36 31 2D 31 34 38 61 2D 39 34 34 33 2D 32 39 38 37 39 39 39 32 32 38 62 34 D A 20 20 20 20 20 6E 61 6D 65 2D 6C 61 62 65 6C 20 28 20 52 57 29 3A 20 70 63 2D 30 31 D A 20 20 20 20 70 6F 77 65 72 2D 73 74 61 74 65 20 28 20 52 4F 29 3A 20 68 61 6C 74 65 64 D A D A D A 75 75 69 64 20 28 20 52 4F 29 20 20 20 20 20 20 20 20 20 20 20 3A 20 36 64 32 32 33 64 31 31 2D 37 37 64 34 2D 39 65 30 34 2D 39 34 66 34 2D 65 30 61 37 38 61 62 63 63 64 64 30 D A 20 20 20 20 20 6E 61 6D 65 2D 6C 61 62 65 6C 20 28 20 52 57 29 3A 20 57 69 6E 64 6F 77 73 2D 70 63 D A 20 20 20 20 70 6F 77 65 72 2D 73 74 61 74 65 20 28 20 52 4F 29 3A 20 68 61 6C 74 65 64 D A D A D A 75 75 69 64 20 28 20 52 4F 29 20 20 20 20 20 20 20 20 20 20 20 3A 20 31 32 37 64 33 38 35 63 2D 32 36 36 66 2D 34 39 30 33 2D 34 38 32 37 2D 34 65 34 38 35 39 63 39 34 62 35 63 D A 20 20 20 20 20 6E 61 6D 65 2D 6C 61 62 65 6C 20 28 20 52 57 29 3A 20 6C 69 6E 75 78 70 63 D A 20 20 20 20 70 6F 77 65 72 2D 73 74 61 74 65 20 28 20 52 4F 29 3A 20 68 61 6C 74 65 64
    P.S. ho modificato il codice in questo modo:
    codice:
    Dim s As String = ""
                Dim elenco As String = System.IO.File.ReadAllText("c:\scambio\elenco.txt")
                For c As Integer = 0 To elenco.Length - 1
                    s &= Hex(Strings.Asc(elenco.Substring(c, 1).ToString())) & " "
                Next
                Console.WriteLine(s)
    perché mi dava errore.

+ Rispondi al Thread
Pagina 2 di 4 primaprima 1234 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi