Dividere un testo

di il
41 risposte

Dividere un testo

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

  • Re: Dividere un testo

    Apri il file, leggi la linea e fai lo split usando la virgola come carattere separatore.
  • Re: Dividere un testo

    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
  • Re: Dividere un testo

    No non ti sei spiegato. Quali righe vanno nella prima rtb? E quali nella seconda? Separa i due elenchi
  • Re: Dividere un testo

    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
  • Re: Dividere un testo

    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?
  • Re: Dividere un testo

    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
  • Re: Dividere un testo

    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?
  • Re: Dividere un testo

    Scrivi il codice per la prima, al resto pensiamo noi
  • Re: Dividere un testo

    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...
  • Re: Dividere un testo

    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()
  • Re: Dividere un testo

    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
  • Re: Dividere un testo

    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
  • Re: Dividere un testo

    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
  • Re: Dividere un testo

    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