Dividere un testo

di Anonimizzato27151 il
41 risposte
Ciao, mi sono affacciato da poco all'utilizzo di visual basic e ho un problema.
Ho bisogno di aprire un file e suddividere il suo contenuto in diverse richtextbox.
Il file contiene un numero variabile di misure e ogni serie è divisa da una stringa che rappresenta la media dei valori misurati.
"10-09-2019"," 1000","0.5","Hamon1k"," hamon-serie/1k olio - start","50"
1,9.999933295635,"14:34:02"
2,9.999937484974,"14:34:37"
3,9.999937253042,"14:35:02"
4,9.999937487325,"14:35:26"
5,9.999937368044,"14:35:51"
9.999937464
Questo qui è un esempio di una parte di una serie di misure, quindi io dovrei eseguire uni split ad ogni termine di una serie ma non so come fare.
Ringrazio in anticipo

41 Risposte

  • Apri il file, leggi la linea e fai lo split usando la virgola come carattere separatore.
  • oregon ha scritto:


    Apri il file, leggi la linea e fai lo split usando la virgola come carattere separatore.
    Forse non mi sono spiegato bene
    "10-09-2019"," 1000","0.5","Hamon1k"," hamon-serie/1k olio - start","50"
    1,9.999933295635,"14:34:02"
    2,9.999937484974,"14:34:37"
    3,9.999937253042,"14:35:02"
    4,9.999937487325,"14:35:26"
    5,9.999937368044,"14:35:51"
    6,9.999937308444,"14:36:15"
    7,9.999937328235,"14:36:40"
    8,9.999937377335,"14:37:04"
    9,9.999937417428,"14:37:29"
    10,9.999937435285,"14:37:53"
    11,9.999937432087,"14:38:18"
    12,9.999937424353,"14:38:43"
    13,9.999937420701,"14:39:07"
    14,9.999937426946,"14:39:32"
    15,9.999937448311,"14:39:56"
    16,9.999937482657,"14:40:21"
    17,9.999937494444,"14:40:45"
    18,9.999937484535,"14:41:10"
    19,9.999937475488,"14:41:34"
    20,9.99993747113,"14:41:59"
    21,9.999937474327,"14:42:23"
    22,9.999937484166,"14:42:48"
    23,9.999937491734,"14:43:12"
    24,9.999937491119,"14:43:37"
    25,9.999937484057,"14:44:01"
    26,9.999937474595,"14:44:26"
    27,9.999937468489,"14:44:50"
    28,9.999937460792,"14:45:15"
    29,9.999937446376,"14:45:39"
    30,9.999937446476,"14:46:04"
    31,9.999937460638,"14:46:29"
    32,9.99993746652,"14:46:53"
    33,9.999937468589,"14:47:18"
    34,9.999937463694,"14:47:42"
    35,9.999937454303,"14:48:07"
    36,9.999937449007,"14:48:31"
    37,9.999937455322,"14:48:56"
    38,9.999937477649,"14:49:20"
    39,9.99993750076,"14:49:45"
    40,9.999937508559,"14:50:09"
    41,9.99993750479,"14:50:34"
    42,9.999937501886,"14:50:58"
    43,9.999937499932,"14:51:23"
    44,9.99993750394,"14:51:47"
    45,9.999937503551,"14:52:12"
    46,9.999937502814,"14:52:36"
    47,9.999937506078,"14:53:01"
    48,9.999937499589,"14:53:26"
    49,9.999937496659,"14:53:50"
    50,9.999937505534,"14:54:15"
    9.999937464
    "10-09-2019"," 1000","0.5","Hamon1k","10kESI-26/1k olio","50"
    1,9.999952684661,"14:55:31"
    2,9.999954685256,"14:56:06"
    3,9.999954484537,"14:56:31"
    4,9.999954816907,"14:56:55"
    5,9.999954811083,"14:57:20"
    6,9.999954798859,"14:57:44"
    7,9.999954795073,"14:58:09"
    8,9.999954785009,"14:58:34"
    9,9.999954763867,"14:58:58"
    10,9.999954742435,"14:59:23"
    11,9.999954731808,"14:59:47"
    12,9.999954722379,"15:00:12"
    13,9.999954708057,"15:00:36"
    14,9.999954703965,"15:01:01"
    15,9.999954689686,"15:01:25"
    16,9.999954680575,"15:01:50"
    17,9.999954681988,"15:02:14"
    18,9.999954679114,"15:02:39"
    19,9.999954685089,"15:03:03"
    20,9.999954702523,"15:03:28"
    21,9.999954708295,"15:03:52"
    22,9.999954710229,"15:04:17"
    23,9.999954719795,"15:04:41"
    24,9.999954719772,"15:05:06"
    25,9.999954726731,"15:05:30"
    26,9.999954738821,"15:05:55"
    27,9.999954732371,"15:06:20"
    28,9.999954734276,"15:06:44"
    29,9.999954735079,"15:07:09"
    30,9.999954726801,"15:07:33"
    31,9.999954729756,"15:07:58"
    32,9.99995473472,"15:08:22"
    33,9.999954733719,"15:08:47"
    34,9.999954728026,"15:09:11"
    35,9.999954716623,"15:09:36"
    36,9.999954694289,"15:10:00"
    37,9.999954676614,"15:10:25"
    38,9.999954673043,"15:10:49"
    39,9.999954679058,"15:11:14"
    40,9.999954679494,"15:11:38"
    41,9.999954671011,"15:12:03"
    42,9.999954667199,"15:12:27"
    43,9.99995466484,"15:12:52"
    44,9.999954671849,"15:13:17"
    45,9.999954679648,"15:13:41"
    46,9.999954686311,"15:14:06"
    47,9.999954698049,"15:14:30"
    48,9.999954687816,"15:14:55"
    49,9.99995466583,"15:15:19"
    50,9.999954670255,"15:15:44"
    9.99995471
    In questo caso vorrei dividere il testo in due richtextbox, la prima deve contenere tutti i valori fino alla riga che contiene la media
    e la seconda richtextbox dovrebbe contenere dalla riga della data fino alla fine, Grazie per l'aiuto
  • No non ti sei spiegato. Quali righe vanno nella prima rtb? E quali nella seconda? Separa i due elenchi
  • oregon ha scritto:


    No non ti sei spiegato. Quali righe vanno nella prima rtb? E quali nella seconda? Separa i due elenchi
    questa dovrebbe essere la prima rtb
    "10-09-2019"," 1000","0.5","Hamon1k"," hamon-serie/1k olio - start","50"
    1,9.999933295635,"14:34:02"
    2,9.999937484974,"14:34:37"
    3,9.999937253042,"14:35:02"
    4,9.999937487325,"14:35:26"
    5,9.999937368044,"14:35:51"
    6,9.999937308444,"14:36:15"
    7,9.999937328235,"14:36:40"
    8,9.999937377335,"14:37:04"
    9,9.999937417428,"14:37:29"
    10,9.999937435285,"14:37:53"
    11,9.999937432087,"14:38:18"
    12,9.999937424353,"14:38:43"
    13,9.999937420701,"14:39:07"
    14,9.999937426946,"14:39:32"
    15,9.999937448311,"14:39:56"
    16,9.999937482657,"14:40:21"
    17,9.999937494444,"14:40:45"
    18,9.999937484535,"14:41:10"
    19,9.999937475488,"14:41:34"
    20,9.99993747113,"14:41:59"
    21,9.999937474327,"14:42:23"
    22,9.999937484166,"14:42:48"
    23,9.999937491734,"14:43:12"
    24,9.999937491119,"14:43:37"
    25,9.999937484057,"14:44:01"
    26,9.999937474595,"14:44:26"
    27,9.999937468489,"14:44:50"
    28,9.999937460792,"14:45:15"
    29,9.999937446376,"14:45:39"
    30,9.999937446476,"14:46:04"
    31,9.999937460638,"14:46:29"
    32,9.99993746652,"14:46:53"
    33,9.999937468589,"14:47:18"
    34,9.999937463694,"14:47:42"
    35,9.999937454303,"14:48:07"
    36,9.999937449007,"14:48:31"
    37,9.999937455322,"14:48:56"
    38,9.999937477649,"14:49:20"
    39,9.99993750076,"14:49:45"
    40,9.999937508559,"14:50:09"
    41,9.99993750479,"14:50:34"
    42,9.999937501886,"14:50:58"
    43,9.999937499932,"14:51:23"
    44,9.99993750394,"14:51:47"
    45,9.999937503551,"14:52:12"
    46,9.999937502814,"14:52:36"
    47,9.999937506078,"14:53:01"
    48,9.999937499589,"14:53:26"
    49,9.999937496659,"14:53:50"
    50,9.999937505534,"14:54:15"
    9.999937464
    e questa la seconda
    "10-09-2019"," 1000","0.5","Hamon1k","10kESI-26/1k olio","50"
    1,9.999952684661,"14:55:31"
    2,9.999954685256,"14:56:06"
    3,9.999954484537,"14:56:31"
    4,9.999954816907,"14:56:55"
    5,9.999954811083,"14:57:20"
    6,9.999954798859,"14:57:44"
    7,9.999954795073,"14:58:09"
    8,9.999954785009,"14:58:34"
    9,9.999954763867,"14:58:58"
    10,9.999954742435,"14:59:23"
    11,9.999954731808,"14:59:47"
    12,9.999954722379,"15:00:12"
    13,9.999954708057,"15:00:36"
    14,9.999954703965,"15:01:01"
    15,9.999954689686,"15:01:25"
    16,9.999954680575,"15:01:50"
    17,9.999954681988,"15:02:14"
    18,9.999954679114,"15:02:39"
    19,9.999954685089,"15:03:03"
    20,9.999954702523,"15:03:28"
    21,9.999954708295,"15:03:52"
    22,9.999954710229,"15:04:17"
    23,9.999954719795,"15:04:41"
    24,9.999954719772,"15:05:06"
    25,9.999954726731,"15:05:30"
    26,9.999954738821,"15:05:55"
    27,9.999954732371,"15:06:20"
    28,9.999954734276,"15:06:44"
    29,9.999954735079,"15:07:09"
    30,9.999954726801,"15:07:33"
    31,9.999954729756,"15:07:58"
    32,9.99995473472,"15:08:22"
    33,9.999954733719,"15:08:47"
    34,9.999954728026,"15:09:11"
    35,9.999954716623,"15:09:36"
    36,9.999954694289,"15:10:00"
    37,9.999954676614,"15:10:25"
    38,9.999954673043,"15:10:49"
    39,9.999954679058,"15:11:14"
    40,9.999954679494,"15:11:38"
    41,9.999954671011,"15:12:03"
    42,9.999954667199,"15:12:27"
    43,9.99995466484,"15:12:52"
    44,9.999954671849,"15:13:17"
    45,9.999954679648,"15:13:41"
    46,9.999954686311,"15:14:06"
    47,9.999954698049,"15:14:30"
    48,9.999954687816,"15:14:55"
    49,9.99995466583,"15:15:19"
    50,9.999954670255,"15:15:44"
    9.99995471
    Il file poi contiene anche altreserie, queste sono solo le due iniziali
  • Se lo sai fare, leggi le prime righe e le inserisci nel primo rtb fino a che leggi un singolo valore nella riga (una riga con un solo numero).
    Poi fai lo stesso con la seconda rtb.

    Ma partiamo dall'inizio ... Sai aprire e leggere il file riga per riga?
  • oregon ha scritto:


    Se lo sai fare, leggi le prime righe e le inserisci nel primo rtb fino a che leggi un singolo valore nella riga (una riga con un solo numero).
    quindi puoi controllare se è presente la virgola, per il resto basta fare ricerche con google in inglese possibilmente
  • oregon ha scritto:


    Se lo sai fare, leggi le prime righe e le inserisci nel primo rtb fino a che leggi un singolo valore nella riga (una riga con un solo numero).
    Poi fai lo stesso con la seconda rtb.

    Ma partiamo dall'inizio ... Sai aprire e leggere il file riga per riga?
    so aprire un file e visualizzarlo in una rtb però non some come visualizzarlo diviso in diverse rtb, potresti aiutarmi con il codice?
  • Scrivi il codice per la prima, al resto pensiamo noi
  • Qui non si ottiene codice pronto. Devi scriverlo tu seguendo i suggerimenti e si vedono gli errori.
    Hai detto che sai aprire il file e leggere delle righe.. mostra il codice...
  • oregon ha scritto:


    Qui non si ottiene codice pronto. Devi scriverlo tu seguendo i suggerimenti e si vedono gli errori.
    Hai detto che sai aprire il file e leggere delle righe.. mostra il codice...
    ciao, userei questo codice
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim a As System.IO.StreamReader
    a = IO.File.OpenText("C:\Users\Giorgio Marengo\Desktop")
    While a.Peek <> -1
    RichTextBox1.Text = (a.ReadLine())
    End While
    a.Close()
  • Secondo me la soluzione migliore è di leggere il file in un colpo solo mettendolo in un array di stringhe, ad esempio:
    Dim dati = IO.File.ReadAllLines(nomeFile)

    Poi scorrere l'array cercando una riga che comincia con le virgolette, e da lì in poi leggi tutto fino alla prossima riga con le virgolette, buttando tutto dentro al primo RichTextBox, e poi prosegui così, la cosa è semplice

    Sergio
  • SirJo ha scritto:


    Secondo me la soluzione migliore è di leggere il file in un colpo solo mettendolo in un array di stringhe, ad esempio:
    Dim dati = IO.File.ReadAllLines(nomeFile)

    Poi scorrere l'array cercando una riga che comincia con le virgolette, e da lì in poi leggi tutto fino alla prossima riga con le virgolette, buttando tutto dentro al primo RichTextBox, e poi prosegui così, la cosa è semplice

    Sergio
    Il concetto l'ho capito, ma il mio problema è prettamente a livello di codice.
    Tu ringrazio per l'aiuto
  • mangoboss ha scritto:


    ciao, userei questo codice.......
    l'hai testato ? funziona bene per la prima richtextbox?
    1) non hai messo il nome del file
    2) secondo me visualizzi solo l'ultima riga
    comunque seguirei il consiglio di SirJo
  • patel ha scritto:


    mangoboss ha scritto:


    ciao, userei questo codice.......
    l'hai testato ? funziona bene per la prima richtextbox?
    1) non hai messo il nome del file
    2) secondo me visualizzi solo l'ultima riga
    comunque seguirei il consiglio di SirJo
    L'ho provato ora e hai ragione legge solo l'ultima riga, ho capito il Consiglio di sirJo però non saprei come scrivere il codice.
    Grazie
Devi accedere o registrarti per scrivere nel forum
41 risposte