Gambas-it

Gambas3 => Programmazione => Topic aperto da: Top Fuel - 03 Febbraio 2018, 23:57:47

Titolo: Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: Top Fuel - 03 Febbraio 2018, 23:57:47
Ed ecco una funzioncina per convertire una coordinata dal formato gradi/primi/secondi al formato decimale:  :)
Codice: [Seleziona]
' Gambas class file


Public Sub Form_Open()
Dim coordinata As String = "115°48'35"
Dim decimale As Float 'coordinata in formato decimale
decimale = converti(coordinata)
Print decimale
End

Public Function converti(coordinata As String) As Float 'converte una coordinata da gradi/primi/secondi in cooordinata decimale
Dim scanna As String[] 'array per splittare la coordinata
Dim gradi As Short
Dim primi, secondi As Byte
Dim decimale As Float
scanna = Scan(coordinata, "*°*'*") 'separiamo i componenti della coordinata
gradi = CShort(scanna[0]) 'convertiamoli in numeri
primi = CByte(scanna[1])
secondi = CByte(scanna[2])
decimale = gradi + primi / 60 + secondi / 3600 'calcoliamo il risultato
Return decimale
End

Qualcuno però mi deve spiegare come mai Split mi mette i primi e i secondi nel 3° e 4° elemento dell'array mentre nel 2° ci mette uno spazio (o nulla, non si capisce).
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: vuott - 04 Febbraio 2018, 00:02:57
Poiché la struttura della stringra sarà sempre gradi°minuti'secondi, ti conviene utilizzare la funzione Scan( ).
Ossia:
Codice: [Seleziona]
......
scanna = Scan(coordinata, "*°*'*")

gradi = CShort(scanna[0]) 'convertiamoli in numeri
Print gradi

primi = CByte(scanna[1])
Print primi

secondi = CByte(scanna[2])
Print secondi

......
Molto apprezzabile positivamente la cura, da te profusa, nella diversificazione dei tipi di dati (Short e Byte).

Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: Top Fuel - 04 Febbraio 2018, 00:54:35
Beh, qui si parlava di coordinate, quindi mi sembrava il posto appropriato.
Comunque "scanna" non si può leggere... :D :D :D

Citazione
Molto apprezzabile positivamente la cura, da te profusa, nella diversificazione dei tipi di dati (Short e Byte).

Ad ogni valore la sua giusta variabile. Grazie per l'apprezzamento.
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: alcresio - 04 Febbraio 2018, 01:46:14
Citazione
Comunque "scanna" non si può leggere... :D :D :D

Io faccio anche di peggio:
Starta(Chi as Qualcosa )
Cleana (Dove as qualcosaltro)

 ;D
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: Gianluigi - 04 Febbraio 2018, 09:22:43
Ho creato una nuova discussione, più facile da reperire in future ricerche.

 :ciao:
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: vuott - 04 Febbraio 2018, 13:27:19
... più facile da reperire in future ricerche.

Appunto !
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: Top Fuel - 04 Febbraio 2018, 22:33:20
Ho modificato il listato con le indicazioni di vuott.
Ora, da solerte  :death: ambasciatore :death:, potrebbe, se vuole, pubblicarlo sul forum dei colleghi spagnoli. :)
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: vuott - 04 Febbraio 2018, 23:46:57
Ho modificato il listato con le indicazioni di vuott.
Hai lasciato là la funzione Split() !


...potrebbe, se vuole, pubblicarlo sul forum dei colleghi spagnoli. :)
Ma perché non vi 'mbaràde lo spagnolo ?   

(https://i2.wp.com/67.media.tumblr.com/6f1476d6978dd4bb343944af31605912/tumblr_ofbq6142Xw1ubszlfo6_250.gif)
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: vuott - 06 Febbraio 2018, 16:16:25
Un membro della comunità spagnola ti fa i complimenti e interviene anche sul codice:

https://foro.gambas-es.org/show_post.php?p=41374
Titolo: Re:Convertire una coordinata dal formato gradi/primi/secondi al formato decimale
Inserito da: vuott - 07 Febbraio 2018, 01:10:23
...e aggiunge anche questo:

https://foro.gambas-es.org/show_post.php?p=41377