Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #18486

Re: Parsing di un file di testo

Newsgroups it.comp.lang.visual-basic
Date 2015-08-28 14:56 -0700
References <f723c505-d007-4d13-8312-68c4d7f93579@googlegroups.com>
Message-ID <0ad21972-9e08-413e-b141-1df77459589d@googlegroups.com> (permalink)
Subject Re: Parsing di un file di testo
From aren.hoxha@gmail.com

Show all headers | View raw


Forse non sono stato chiaro neache io, comunque grazie per le risposte.

La soluzione Franz non è quello che mi serve, non fa altro che divedere i valori quando a me interessa raggruppare i valori dello stesso canale.

@Sauro La soluzione prevede IF ma io non posso sapere a priori quali e quanti campi ho.

il file è composto in questo modo comunque :

- Questo è l'output della macchina :

13, 28 °C,14, 28 °C,15, 28 °C,22, 27 °C,23, 26 °C,24, 27 °C,33, 26 °C,34, 27 °C,35, 26 °C,36, 27 °C,49, 29 °C,50, 29 °C 
51, 29 °C,54, 27 °C,55, 27 °C,56, 27 °C,61, 29 °C,62, 29 °C,63, 29 °C,64, 29 °C,65, 29 °C,66, 29 °C,11,-1.00 bar,18,-0.99 bar 
19,-1.00 bar,20,-1.00 bar,21,-0.99 bar,22,-0.99 bar,23,-0.99 bar,25,-1.00 bar,26,-1.00 bar,27,-0.99 bar,28,-1.00 bar,29,-0.99 bar,30,-0.99 bar,31,-0.99 bar 
33,-1.00 bar,34,-0.99 bar,35,-0.99 bar,36,-1.00 bar,37,-1.00 bar,38,-0.99 bar,39,-1.00 bar,41,-1.00 bar,42,-0.99 bar,43,-1.00 bar,44,-0.99 bar,45,-1.00 bar 
46,-0.99 bar,47,-1.00 bar,65,-1.00 bar,66,-0.99 bar,67,-0.99 bar,68,-0.99 bar,69,-0.99 bar,70,-0.99 bar,71,-0.99 bar,73,-1.00 bar,74,-1.00 bar,75,-0.99 bar 
77,-0.99 bar,78,-0.98 bar,81,-0.99 bar,82,-0.99 bar,83,-0.99 bar,84,-1.00 bar,85,-0.99 bar,86,-0.98 bar,87,-0.99 bar,89,-0.99 bar,90,-1.00 bar,91,-1.00 bar 
93,-0.99 bar,94,-0.99 bar,,,,,,,,,,,,,,,,,,,, 

E' una lettura di tutti i canali. Lo si fa ogni minuto per circa 700 min.
Quindi il file di testo presenta lo stesso pezzo di dati per 700 volte!

La fine di ogni lettura, quindi ogni minuto, è diviso da quella serie di virgole.

La cosa che ho fatto fin'ora è stata creare una matrice a due dimensioni dove ho i salvato le temperature.

In ordine :

1)Leggo la il primo minuto di output per individuare quanti canali unici ho sia di temperatura che di pressione. 
2) Ridimensiono gli array di valori temp e pressione con i canali trovati
3) uso InStr per scandagliare tutti i valori e salvo  quelli che contengono °C in un array e quelli che contengono bar in un altro, scarto quelli senza niente (sono i canali)
4) Una volta che ho il numero di canali e la totalità di valori, vedo quanti minuti di lettura ho facendo semplicemente la divisione 
righetemp = (UBound(arrTemp) / UBound(canaliTemp))

Ridimensiono la matrice in questo modo : 

ReDim MatriceTemp(UBound(canaliTemp), righetemp)


dopo popolo la matrice in questo modo : 


For n = 1 To UBound(MatriceTemp, 2)

    For m = 1 To UBound(MatriceTemp, 1)
            
            i = m + k
            MatriceTemp(m, n) = arrTemp(i)
                        
     Next
    k = i
Next

La soluzione è un pò macchinosa, idee?

Back to it.comp.lang.visual-basic | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Parsing di un file di testo aren.hoxha@gmail.com - 2015-08-27 14:48 -0700
  Re: Parsing di un file di testo aren.hoxha@gmail.com - 2015-08-27 15:14 -0700
  Re: Parsing di un file di testo mmm <mmm@john.bluto.blutarsky.it> - 2015-08-28 09:48 +0200
  Re: Parsing di un file di testo "Sauro" <vicchi@crsscala.it> - 2015-08-28 10:19 +0200
  Re: Parsing di un file di testo Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2015-08-28 15:21 +0200
  Re: Parsing di un file di testo aren.hoxha@gmail.com - 2015-08-28 14:56 -0700
    Re: Parsing di un file di testo Luca D <antaniserse@yahoo.it> - 2015-08-28 15:46 -0700
    Re: Parsing di un file di testo Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2015-08-29 14:43 +0200

csiph-web