Autore Topic: Convertire una coordinata dal formato gradi/primi/secondi al formato decimale  (Letto 645 volte)

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
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).
« Ultima modifica: 06 Febbraio 2018, 22:55:48 da Top Fuel »
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.254
  • Ne mors quidem nos iunget
    • Mostra profilo
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).

« Ultima modifica: 04 Febbraio 2018, 13:26:23 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
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.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline alcresio

  • Grande Gambero
  • ***
  • Post: 100
    • Mostra profilo
Citazione
Comunque "scanna" non si può leggere... :D :D :D

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

 ;D

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.145
  • Tonno verde
    • Mostra profilo
Ho creato una nuova discussione, più facile da reperire in future ricerche.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.254
  • Ne mors quidem nos iunget
    • Mostra profilo
... più facile da reperire in future ricerche.

Appunto !
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Ho modificato il listato con le indicazioni di vuott.
Ora, da solerte  :death: ambasciatore :death:, potrebbe, se vuole, pubblicarlo sul forum dei colleghi spagnoli. :)
« Ultima modifica: 06 Febbraio 2018, 22:56:59 da Top Fuel »
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.254
  • Ne mors quidem nos iunget
    • Mostra profilo
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 ?   

« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.254
  • Ne mors quidem nos iunget
    • Mostra profilo
Un membro della comunità spagnola ti fa i complimenti e interviene anche sul codice:

https://foro.gambas-es.org/show_post.php?p=41374
« Ultima modifica: 18 Settembre 2020, 22:46:37 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.254
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 18 Settembre 2020, 22:46:51 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »