PDA

View Full Version : Che linguaggio utilizzare?


TheQ.
14-01-2018, 00:11
Salve a chi aiuta nella sezione programmazione. Credo sia la prima volta che ne faccio uso.
Devo creare un file exe che mi classifichi una serie di misure per data, ora direzione ed un intervallo di lunghezze (per esempio le misure comprese fra 3 e 5 metri).
Il file di origine ha per esempio 6000 stringhe così:
16.06.17 00:02 059 001 146
16.06.17 00:02 061 001 022
16.06.17 00:03 034 001 051
16.06.17 00:03 053 001 043
16.06.17 00:05 043 001 136
16.06.17 00:05 042 001 042
16.06.17 00:06 045 001 116
16.06.17 00:07 069 001 036
16.06.17 00:07 033 001 038
16.06.17 00:08 047 001 044
16.06.17 00:08 053 001 041
dove i primi numeri sono la data, e poi si ha l'ora, una lunghezza, direzione (000 e 001) e una velocità.

Bene, basta sapere il numero di righe del file txt (variabile), cosa che può essere fatta con un file batch

Provo a fare il file in batch... e per esempio un file fortran, lanciabil sempre da batch che per tot iterazioni pari a righe con un ciclo if goto applica dei semplici IF per distinguere le varie date/misure e conta le diverse stringhe.

Bene, scrivo per esempio
program conversione
implicit none
integer :: righe,iter

open (unit=4, file='misure.txt')
open (unit=2, file='righe.txt')
open (unit=5, file='risultati.txt')
read(2,*)righe
iter=0
10 continue
iter=iter+1
write(5,*) righe, iter
read(*,*)
if (iter.lt.righe) goto 10
STOP
END

in force 3 e scopro che il programma non è compatibile in win10 64 bit.
Provo simply fortran, il programma si compila, ma in risultati scrive solo 1 stringa con 1 numero di righe ed 1 (una sola iterazione), indipendentemente che vi sia gt o lt sull'if
if (iter.gt.righe) goto 10 o if (iter.lt.righe) goto 10

(O.o)
Ma fortran ha problemi in windows 10? come può sbagliare così un semplice ciclo?!

cdimauro
14-01-2018, 20:35
Non ne ho idea, ma per questo tipo di problematiche potresti provare Python, che ha una gestione abbastanza avanzata di manipolazione di stringhe e, in generale, di dati.

Anche non lo dovessi conoscerlo, per quel che devi fare lo impari molto velocemente.

TheQ.
14-01-2018, 20:46
In pratica mettendo compatibilità sull'Exe generato ha malfunzionamenti sul ciclo if. Mettendo Simply Fortran in compatibilità con Windows XP compila corretto e il ciclo funziona bene. Farò un misto Bat + exe, Bat per individuare righe e rimuovere dei caratteri e exe Fortran per l'enumerazione.

Nel frattempo la patch meltdown ha fatto il suo effetto... L'uefi non fa piu il boot. È manco il legacy. -,-