Convertisseur GPS [Résolu]

- - Dernière réponse :  Micoute - 9 févr. 2013 à 21:49
Bonjour à tous,

fidèle à mes habitudes, je continue ma série de convertisseurs en tous genres, mais là, j'ai un petit problème, car quand je modifie un TextBox, ça devrait modifier le second.

Alors, comme d'habitude, je compte sur votre bonne volonté pour m'aider à corriger ce problème et je vous en remercie beaucoup.

Public Class Form1
    ' ******************* base 60 2 Deci ******************************
    'Exemple. Soit une latitude de 45° 53' 36" (45 degrés, 53 minutes et 36 secondes). 
    'Exprimée en degrés décimaux, la latitude sera égale à :
    'latitude 45 + (53 / 60) + (36 / 3600) 45,89
    'Formulation générale :
    'latitude (degrés décimaux) = degrés + (minutes / 60) + (secondes / 3600)


    ' ******************* decimal 2 base 60 ************************** 
    '      Exemple : soit une longitude de 121,135°
    ' 
    '     Le nombre avant la virgule indique les degrés ? 121°
    '     Multiplier le nombre après la virgule par 60 ? 0,135 * 60 = 8,1
    '     Le nombre avant la virgule devient la minute (8')
    '     Multiplier le nombre après la virgule par 60 ? 0,1 * 60 = 6
    '     Le résultat correspond aux secondes (6").
    '     Notre longitude sera de 121° 8' 6"

    Dim gps_Sexa, gps_Deci, diviseur, degres_deci, minute_deci, sec, degres_sexa, minute_sexa, _
            seconde_sexa As String
    Dim degres, divi, minut, reste0 As Integer
    Dim seconde, reste1, reste2 As Double
    Dim unites As New List(Of String) From {"10,100,1000,10000,100000,1000000,10000000"}

    Dim LblTitre As New Label With {.Parent = Me, _
                                    .Location = New Point(0, 0), _
                                    .Size = New System.Drawing.Size(342, 48), _
                                    .Text = "Conversion GPS", _
                                    .Font = New System.Drawing.Font("Microsoft Sans Serif", _
                                                                    20.25!, _
                                                                    System.Drawing.FontStyle.Bold, _
                                                                    System.Drawing.GraphicsUnit.Point, _
                                                                    CType(0, Byte)), _
                                    .ForeColor = System.Drawing.Color.Blue, _
                                    .BackColor = System.Drawing.Color.Yellow}
    Dim LblBase60 As New Label With {.Parent = Me, _
                                     .Location = New Point(20, 80), _
                                     .Text = "Deg Min Sec"}
    Dim LblDeci As New Label With {.Parent = Me, _
                                   .Location = New Point(20, 125), _
                                   .Text = "Decimal"}
    Dim WithEvents TxtSexa As New TextBox With {.Parent = Me, _
                                                .Location = New Point(120, 80), _
                                                .Text = "00 00 00", _
                                                .Font = New System.Drawing.Font("Microsoft Sans Serif", _
                                                                    14.0!, _
                                                                    System.Drawing.FontStyle.Bold, _
                                                                    System.Drawing.GraphicsUnit.Point, _
                                                                    CType(0, String))}
    Dim WithEvents TxtDecimal As New TextBox With {.Parent = Me, _
                                                .Location = New Point(120, 115), _
                                                .Text = "00.0000", _
                                    .Font = New System.Drawing.Font("Microsoft Sans Serif", _
                                                                    14.0!, _
                                                                    System.Drawing.FontStyle.Bold, _
                                                                    System.Drawing.GraphicsUnit.Point, _
                                                                    CType(0, String))}

    Public Function Convert_gps(ByVal gps_Deci As String, ByVal gps_sexa As String) As String

        If gps_Deci <> "" Then
            degres_deci = Strings.GetChar(gps_Deci, 1)
            minute_deci = Strings.GetChar(gps_Deci, 2)
            If Len(minute_deci) > 6 Then
                minute_deci = Microsoft.VisualBasic.Left(minute_deci, 6)
            End If


            If Len(minute_deci) > 0 Then
                divi = Val(Strings.GetChar(diviseur, Len(minute_deci)))
            Else
                divi = 1
            End If

            degres = Val(degres_deci)
            minut = Val(minute_deci) * 60 / divi

            seconde = Val(minute_deci) * 60 / divi
            sec Str(seconde) : sec Strings.GetChar(sec, 2)
            seconde = Val(sec) * 60 / divi

            gps_sexa = degres + "° " + Str(minut) + "' " + Str(seconde / 10000) + """"
            Return gps_sexa
            Calcul()
        End If

        If gps_sexa <> "" Then

            gps_sexa = Strings.Replace(gps_sexa, "°", " ")
            gps_sexa = Strings.Replace(gps_sexa, "''", " ")
            gps_sexa = Strings.Replace(gps_sexa, "'", " ")

            degres_sexa = Strings.GetChar(gps_sexa, 1)
            minute_sexa = Strings.GetChar(gps_sexa, 2)
            seconde_sexa = Strings.GetChar(gps_sexa, 3)
            reste0 = Val(degres_sexa)
            reste1 = Val(minute_sexa) / 60
            reste2 = Val(seconde_sexa) / 3600
            gps_Deci = Str(reste0 + reste1 + reste2)
            Return gps_Deci
            Calcul()
        End If
    End Function

    Sub Calcul()
        If TxtSexa.Text <> "00 00 00" Then
            gps_Sexa = TxtSexa.Text
            gps_Deci = ""
            TxtDecimal.Text = gps_Deci
            TxtDecimal.Text = Convert_gps(gps_Deci, gps_Sexa)
        ElseIf TxtDecimal.Text <> "00.0000" Then
            gps_Sexa = TxtSexa.Text
            gps_Deci = ""
            TxtDecimal.Text = gps_Deci
            TxtDecimal.Text = Convert_gps(gps_Deci, gps_Sexa)
        End If
    End Sub
End Class



Tout homme doit être poli ; mais il doit aussi être libre.
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
3
Merci
Imports System.Math
Imports System.Char
Public Class Acceuil
    Public Structure CodeSexa
        Dim Degrés As Integer
        Dim Minutes As Integer
        Dim Secondes As Integer
    End Structure

    'Définition des variables

    Private AngD As Double
    Private AngS As CodeSexa

    'Algorithmes

    Private Function SexaVersDéci(ByVal Sex As CodeSexa) As Double
        Dim Déc As Double
        With Sex
            Déc = .Degrés + .Minutes / 60 + .Secondes / 3600
        End With
        Return Déc
    End Function

    Private Function DéciVersSexa(ByVal Déc As Double) As CodeSexa
        Dim Sex As CodeSexa, Sec As Integer, Q As Integer
        Sec = CInt(3600 * Déc)
        With Sex
            Q = DivRem(Sec, 60, .Secondes)
            .Degrés = DivRem(Q, 60, .Minutes)
        End With
        Return Sex
    End Function

    'Formatages

    ''' <summary>
    ''' Retourne le texte représentant le réel x avec quatre décimales.
    ''' </summary>
    Private Function Formaté(ByVal x As Double) As String
        Return x.ToString("0.0000").Replace(".", ",")
    End Function

    ''' <summary>
    ''' Retourne le texte représentant l'entier x avec au moins n chiffes.
    ''' </summary>
    Private Function Formaté(ByVal x As Integer, ByVal n As Integer) As String
        Dim c As Char = Parse("0"), t As New String(c, n)
        Return x.ToString(t)
    End Function

    'Textes

    Private Function TexteDéci(ByVal Sex As CodeSexa) As String
        Return Formaté(SexaVersDéci(Sex))
    End Function

    Private Function TexteSexa(ByVal Déc As Double) As String
        Dim Sex As CodeSexa = DéciVersSexa(Déc)
        Dim Txt As String
        With Sex
            Txt = Formaté(.Degrés, 1) & "°" ' & Formaté(.Minutes, 2) & Formaté(.Secondes, 2)
            Txt = Txt & Formaté(.Minutes, 2) & "'"
            Txt = Txt & Formaté(.Secondes, 2) & """"
        End With
        Return Txt
    End Function

    'Tests

    Private Sub TesterSexaVersDéci()
        With AngS
            .Degrés = 10
            .Minutes = 30
            .Secondes = 9
        End With
        MessageBox.Show(TexteDéci(AngS))
    End Sub

    Private Sub TesterDéciVersSexa()
        AngD = 10.5025
        MessageBox.Show(TexteSexa(AngD))
    End Sub

End Class

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Zermelo
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Salut Micoute,

Dis, tu devrais éviter de mettre des placards de code (C'est moi qui ai dis ça ?!)
Tu dis clairement ce que tu veux faire et puis tu donne au pire un petit exemple
mais pas trop long tu vois, juste histoire de voir ou tu veux en venir

Par exemple ici si j'ai bien compris, tu veux que quand tu modifie un TextBox, qu'un autre
se modifie aussi, c'est bien ça ?

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
TextBox2.Text = "Ton texte"
End Sub
Commenter la réponse de cs_dayvid
0
Merci
Salut Dayvid,

tu as presque deviné, en fait tu as en partie raison, sauf que je dois pouvoir modifier n'importe lequel des deux TextBox, mais je me suis embrouillé avec des fonctions que je n'ai pas trouvé dans Visual Basic, c'est pourquoi j'ai posté ce code.

Dans tous les cas, je remercie tous ceux qui pourront m'aider dans ma démarche.


Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute
0
Merci
Bonsoir,

L'instruction 'return' retourne un résultat. Ce qui vient après n'est pas exécuté.
Commenter la réponse de Utilisateur anonyme
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Bha oui réfléchie un peut, comment tu veux que ça marche comme ça
Return gps_sexa
Calcul()

C'est comme si tu disais à quelqu'un:
Va dans la maison, fais ça
Ensuite sort de la maison et va dans la salle de bain et fais ça

La personne est sortie de la maison, comment tu veux qu'elle aille dans la salle de bain ensuite
Je sais, pas très bon comme exemple mais j'ai que ça sous le coude !

Non le mieux tu lui dit:
Va dans la maison, fais ça
Ensuite va dans la salle de bain, fais ça puis ensuite sort de la maison

Calcul()
Return gps_sexa
Commenter la réponse de cs_dayvid
0
Merci
Je sais, pas très bon comme exemple mais j'ai que ça sous le coude !

Tu as parfaitement raison.
C'est un très mauvais exemple
Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour à tous,

Je crois bien que sur ce coup là, je me suis emmêlé les pinceaux, d'ailleurs il n'y a aucune logique qui corresponde à ce que j'explique au tout début de mon programme, alors je crois bien que je vais le reprendre à la base avec plus d'attention.

Vous n'auriez pas, par le fruit du hasard, un système pour formater mes chaînes du genre 00°00'00" et 00,0000 ?

En tous cas, merci beaucoup pour vos conseils précieux qui vont m'être très utiles !


Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute
0
Merci
Imports System.Math
Public Class Acceuil
    Public Structure CodeSexa
        Dim Degrés As Integer
        Dim Minutes As Integer
        Dim Secondes As Integer
    End Structure

    'Définition des variables

    Private AngD As Double
    Private AngS As CodeSexa

    'Algorithmes

    Private Function SexaVersDéci(ByVal Sex As CodeSexa) As Double
        Dim Déc As Double
        With Sex
            Déc = .Degrés + .Minutes / 60 + .Secondes / 3600
        End With
        Return Déc
    End Function

    Private Function DéciVersSexa(ByVal Déc As Double) As CodeSexa
        Dim Sex As CodeSexa, Sec As Integer, Q As Integer
        Sec = CInt(3600 * Déc)
        With Sex
            Q = DivRem(Sec, 60, .Secondes)
            .Degrés = DivRem(Q, 60, .Minutes)
        End With
        Return Sex
    End Function

    'Tests

    Private Sub TesterSexaVersDéci()
        With AngS
            .Degrés = 10
            .Minutes = 30
            .Secondes = 9
        End With
        AngD = SexaVersDéci(AngS)
        MessageBox.Show(AngD.ToString)
    End Sub

    Private Sub TesterDéciVersSexa()
        Dim Msg As String
        AngD = 10.5025
        AngS = DéciVersSexa(AngD)
        With AngS
            Msg = .Degrés.ToString & "°" & .Minutes.ToString & "'" & .Secondes.ToString & """"
        End With
        MessageBox.Show(Msg)
    End Sub

End Class
Commenter la réponse de Zermelo
0
Merci
Bonjour et merci beaucoup Monsieur Zermelo,

Comme vous pouvez le voir ci-dessous, votre aide providentielle m'a fait faire un bond de géant, mais comme j'aime les belles choses, j'aimerais que quand j'écris dans un TextBox, ça modifie l'autre Texbox au fur et à mesure sans avoir à cliquer dessus (je ne connais pas d'autre méthode) et tant qu'à faire, j'aimerais aussi formater les textes dans les TextBox.

Evidemment, ne croyez pas que je quémande, j'expose seulement mes souhaits.

Imports System.Math
Public Class GPS
    ' ******************* base 60 2 Deci ******************************
    'Exemple. Soit une latitude de 45° 53' 36" (45 degrés, 53 minutes et 36 secondes). 
    'Exprimée en degrés décimaux, la latitude sera égale à :
    'latitude 45 + (53 / 60) + (36 / 3600) 45,89
    'Formulation générale :
    'latitude (degrés décimaux) = degrés + (minutes / 60) + (secondes / 3600)


    ' ******************* decimal 2 base 60 ************************** 
    'Exemple : soit une longitude de 121,135°
    ' 
    'Le nombre avant la virgule indique les degrés ? 121°
    'Multiplier le nombre après la virgule par 60 ? 0,135 * 60 = 8,1
    'Le nombre avant la virgule devient la minute (8')
    'Multiplier le nombre après la virgule par 60 ? 0,1 * 60 = 6
    'Le résultat correspond aux secondes (6").
    'Notre longitude sera de 121° 8' 6"

    Dim LblTitre As New Label With {.Parent = Me, _
                                    .Location = New Point(0, 0), _
                                    .Size = New System.Drawing.Size(342, 48), _
                                    .Text = "Conversion GPS", _
                                    .Font = New System.Drawing.Font("Microsoft Sans Serif", _
                                    20.25!, System.Drawing.FontStyle.Bold, _
                                    System.Drawing.GraphicsUnit.Point, CType(0, Byte)), _
                                    .ForeColor = System.Drawing.Color.Blue, _
                                    .BackColor = System.Drawing.Color.Yellow}
    Dim LblBase60 As New Label With {.Parent = Me, _
                                     .Location = New Point(20, 80), _
                                     .Text = "Deg Min Sec"}
    Dim LblDeci As New Label With {.Parent = Me, _
                                   .Location = New Point(20, 125), _
                                   .Text = "Decimal"}
    Dim WithEvents TxtSexa As New TextBox With {.Parent = Me, _
                                                .Location = New Point(120, 80), _
                                                .Text = "00 00 00", _
                                                .Font = New System.Drawing.Font _
                                                ("Microsoft Sans Serif", 14.0!, _
                                                System.Drawing.FontStyle.Bold, _
                                                System.Drawing.GraphicsUnit.Point, _
                                                CType(0, String))}
    Dim WithEvents TxtDecimal As New TextBox With {.Parent = Me, _
                                                .Location = New Point(120, 115), _
                                                .Text = "00,0000", _
                                                .Font = New System.Drawing.Font _
                                                ("Microsoft Sans Serif", 14.0!, _
                                                System.Drawing.FontStyle.Bold, _
                                                System.Drawing.GraphicsUnit.Point, _
                                                CType(0, String))}

    Public Structure CodeSexa
        Dim Degrés As Integer
        Dim Minutes As Integer
        Dim Secondes As Integer
    End Structure

    'Définition des variables

    Private AngD As Double
    Private AngS As CodeSexa

    'Algorithmes

    Public Function SexaVersDéci(ByVal Sex As CodeSexa) As Double
        Dim Déc As Double
        With Sex
            Déc = .Degrés + .Minutes / 60 + .Secondes / 3600
        End With
        Return Déc
    End Function

    Public Function DéciVersSexa(ByVal Déc As Double) As CodeSexa
        Dim Sex As CodeSexa, Sec As Integer, Q As Integer
        Sec = CInt(3600 * Déc)
        With Sex
            Q = DivRem(Sec, 60, .Secondes)
            .Degrés = DivRem(Q, 60, .Minutes)
        End With
        Return Sex
    End Function

    Private Sub Txt_Sexa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles TxtSexa.Click
        If TxtSexa.Text <> "00 00 00" Then
            With AngS
                If Microsoft.VisualBasic.Left(TxtSexa.Text, 2) = "" Then
                    .Degrés = "00"
                Else
                    .Degrés = Microsoft.VisualBasic.Left(TxtSexa.Text, 2)
                End If
                If Microsoft.VisualBasic.Mid(TxtSexa.Text, 4, 2) = "" Then
                    .Minutes = "00"
                Else
                    .Minutes = Microsoft.VisualBasic.Mid(TxtSexa.Text, 4, 2)
                End If
                If Microsoft.VisualBasic.Right(TxtSexa.Text, 2) = "" Then
                    .Secondes = "00"
                Else
                    .Secondes = Microsoft.VisualBasic.Right(TxtSexa.Text, 2)
                End If
            End With
            TxtDecimal.Text = SexaVersDéci(AngS)
        End If
    End Sub

    Private Sub TxtDecimal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles TxtDecimal.Click
        If TxtDecimal.Text <> "00,0000" Then
            Dim Résultat As String
            AngD = TxtDecimal.Text '10.5025
            AngS = DéciVersSexa(AngD)
            With AngS
                Résultat = .Degrés.ToString & "°" & _
                    .Minutes.ToString & "'" & .Secondes.ToString & """"

            End With
            TxtSexa.Text = Résultat
        End If
    End Sub
End Class



Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute
0
Merci
Bonjour,

j'aimerais que quand j'écris dans un TextBox, ça modifie l'autre Texbox

Sers toi de son événement TextChanged pour modifier ton deuxième textbox.

j'aimerais aussi formater les textes dans les TextBox

Regarde l'aide msdn sur String.Format
Commenter la réponse de Utilisateur anonyme
0
Merci
Imports System.Char
Public Class Accueil

    ''' <summary>
    ''' Retourne le texte représentant le réel x avec quatre décimales.
    ''' </summary>
    Private Function Formaté(ByVal x As Double) As String
        Return x.ToString("0.0000").Replace(".", ",")
    End Function

    ''' <summary>
    ''' Retourne le texte représentant l'entier x avec au moins n chiffes.
    ''' </summary>
    Private Function Formaté(ByVal x As Integer, ByVal n As Integer) As String
        Dim c As Char = Parse("0"), t As New String(c, n)
        Return x.ToString(t)
    End Function

End Class

Salut à toi, ami banana32
Commenter la réponse de Zermelo
0
Merci
Bonjour banana32.

Dans un premier temps, je n'avais pas vu ton intervention. Maintenant que je l'ai lue, il me semble que Micoute voudra renseigner chacun de ses deux TextBox par l'autre. Préparons-nous donc à assister à la création du mouvement perpétuel.

Bien amicalement.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Merci
Bonjour Zermelo,

Il n'a qu'a utiliser la propriété Focused du textbox pour savoir lequel des deux est en train d'être modifié.
Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour et merci beaucoup monsieur banana32,

j'ai un peu ramé pour l'évènement TextChanged, mais j'ai malgré tout trouvé une solution pour ce problème.

Par contre pour le ChaineFormatée = String.Format("{0:G}", ChaineNonFormatée), là, je n'ai rien compris, alors j'ai fait 3 textbox, 1 pour les degrés, 1 pour les minutes et 1 pour les secondes, voilà ce que ça donne :

Imports System.Math
Public Class GPS
    ' ******************* base 60 2 Deci ******************************
    'Exemple. Soit une latitude de 45° 53' 36" (45 degrés, 53 minutes et 36 secondes). 
    'Exprimée en degrés décimaux, la latitude sera égale à :
    'latitude 45 + (53 / 60) + (36 / 3600) 45,89
    'Formulation générale :
    'latitude (degrés décimaux) = degrés + (minutes / 60) + (secondes / 3600)


    ' ******************* decimal 2 base 60 ************************** 
    'Exemple : soit une longitude de 121,135°
    ' 
    'Le nombre avant la virgule indique les degrés ? 121°
    'Multiplier le nombre après la virgule par 60 ? 0,135 * 60 = 8,1
    'Le nombre avant la virgule devient la minute (8')
    'Multiplier le nombre après la virgule par 60 ? 0,1 * 60 = 6
    'Le résultat correspond aux secondes (6").
    'Notre longitude sera de 121° 8' 6"

    Dim LblTitre As New Label With {.Parent Me, .Location New Point(0, 0), .Size = New System.Drawing.Size(342, 48), .Text = "Conversion GPS", _
                                    .Font = New System.Drawing.Font("Microsoft Sans Serif",20.25!, System.Drawing.FontStyle.Bold, _
                                    System.Drawing.GraphicsUnit.Point, CType(0, Byte)), .ForeColor = System.Drawing.Color.Blue, _
                                    .BackColor = System.Drawing.Color.Yellow}
    Dim LblBase60 As New Label With {.Parent Me, .Location New Point(20, 80), .Text = "Deg Min Sec"}
    Dim LblDeci As New Label With {.Parent Me, .Location New Point(20, 125),.Text = "Decimal"}
    Dim WithEvents TxtDegre As New TextBox With {.Parent Me, .Location New Point(120, 80), .Size = New Point(40, 20), .Text = "", _
                                                .Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, _
                                                System.Drawing.GraphicsUnit.Point, CType(0, String))}
    Dim WithEvents TxtMinute As New TextBox With {.Parent Me, .Location New Point(162, 80), .Size = New Point(35, 20), .Text = "", _
                                                .Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, _
                                                System.Drawing.GraphicsUnit.Point, CType(0, String))}
    Dim WithEvents TxtSeconde As New TextBox With {.Parent Me, .Location New Point(200, 80), .Size = New Point(35, 20), .Text = "", _
                                                .Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, _
                                                System.Drawing.GraphicsUnit.Point, CType(0, String))}
    Dim WithEvents TxtDecimal As New TextBox With {.Parent Me, .Location New Point(120, 115), .Text = "", .Size = New Point(115, 115), _
                                                .Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, _
                                                System.Drawing.GraphicsUnit.Point, CType(0, String))}
    Dim WithEvents BtnConvertir As New Button With {.Parent Me, .Location New Point(100, 200), .Text = "Convertir"}

    Public Structure CodeSexa
        Dim Degrés As Integer
        Dim Minutes As Integer
        Dim Secondes As Integer
    End Structure

    'Définition des variables

    Private AngD As Double
    Private AngS As CodeSexa

    'Algorithmes

    Public Function SexaVersDéci(ByVal Sex As CodeSexa) As Double
        Dim Déc As Double
        With Sex
            Déc = .Degrés + .Minutes / 60 + .Secondes / 3600
        End With
        Return Déc
    End Function

    Public Function DéciVersSexa(ByVal Déc As Double) As CodeSexa
        Dim Sex As CodeSexa, Sec As Integer, Q As Integer
        Sec = CInt(3600 * Déc)
        With Sex
            Q = DivRem(Sec, 60, .Secondes)
            .Degrés = DivRem(Q, 60, .Minutes)
        End With
        Return Sex
    End Function

    Sub BtnConvertir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConvertir.Click
        If TxtDegre.Text <> "" Then
            With AngS
                .Degrés = TxtDegre.Text
                If TxtMinute.Text <> "" Then
                    .Minutes = TxtMinute.Text
                End If
                If TxtSeconde.Text <> "" Then
                    .Secondes = TxtSeconde.Text
                End If
            End With
            TxtDecimal.Text = SexaVersDéci(AngS)
        End If
        If TxtDecimal.Text <> "" Then
            AngD = TxtDecimal.Text
            AngS = DéciVersSexa(AngD)
            With AngS
                TxtDegre.Text = .Degrés.ToString
                TxtMinute.Text = .Minutes.ToString
                TxtSeconde.Text = .Secondes.ToString
            End With
        End If
    End Sub
End Class


Pouvez-vous me dire ce que vous en pensez, car je crois qu'on peut surement optimiser le code.

Je vous remercie encore pour l'attention que vous m'apportez, car j'ai l'impression d'être meilleur en suivant vos conseils avertis.

Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute
0
Merci
Re bonjour et merci,

le forum ne se remet pas à jour automatiquement et vos messages sont apparus après que j'aie posté le mien, donc je réponds à vos questions.

Préparons-nous donc à assister à la création du mouvement perpétuel.


Et bien, ce n'est pas si simple que ça, car il faudrait que le TextBox receveur se vide à chaque fois qu'il reçoit des infos, car il perturbe l'émetteur, j'ai même ajouté un bouton pour déclencher la conversion et ce n'est toujours probant.

Il n'a qu'a utiliser la propriété Focused du textbox pour savoir lequel des deux est en train d'être modifié.


Je ne sais même pas ce que c'est !


Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute
0
Merci
Ah, au fait, expliquez-moi comment on utilise une classe !

Je vous remercie énormément.

Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute
0
Merci
Bonsoir et merci infiniment,

ça y est, je l'ai enfin terminé, c'est vrai que j'ai appris à formater les textes, mais j'ai préféré plutôt travailler sans le formatage, car ça me causait des erreurs par convertir 45°53'36" en décimal, ça ne marche pas, alors que 45, puis 53 et enfin 36, pas de problème.

Donc, j'ai fait des labels °, ', " et c'est bien quand même.

Ceci dit, je compte poster ce petit programmes qui peut être utile, sait-on jamais ?

En tous cas merci encore mille fois.


Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.