Comment copier une parite de la console

cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 - 6 janv. 2013 à 18:55
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 - 10 janv. 2013 à 09:48
Bonsoir,

Savez-vous s'il vous plaît comment je peux copier une zone de la console vers une autre zone de celle-ci ?
Par exemple, copier la ligne 1 complète (en respectant les couleurs aussi, tous quoi) à la ligne 2 (pour l’exemple)

J'ai trouvé tous seule comment déplacer une zone vers une autre mais je ne sais pas comment copier une zone à une autre !
Se serais particulièrement utile pour reproduire une partie de la console, par exemple pour ne pas a avoir tous à refaire.

Imaginons qu'il y est un jolie texte taper de toutes les couleurs et que je demande ensuite
à l'utilisateur de répondre à une question ou de taper quelque choses dans la console, j'ai pas
envie de devoir tous retaper si il se trompe et que vous qu'il recommence, vous me comprenez ?

14 réponses

cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 09:55
Bon, faut croire que cella n’existe pas !
Il faut donc crée la choses, ça ne va pas être très simple

S'il faut, je la créerais moi cette fonction.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 janv. 2013 à 10:12
Bonjour,
S'il faut, je la créerais moi cette fonction

très bonne décision, surtout si toi, tu y vois un intérêt non forcément partagé par d'autres

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 11:48
Tous t'a fais Thierry
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 janv. 2013 à 11:57
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 12:18
C'est une expression
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 janv. 2013 à 12:39
Ah !
Bon ... et elle s'écrit comment, en réalité ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 13:35
On tombe dans la HS là je crois
Quand quelqu'un te dit quelque choses, répond à une question ou autre, tu dis parfois ceci pour confirmer, bref.

Je vais essayer de crée cette fonction-ci, une personne ou plusieurs voudra t-il bien m'aider ?

Je sais, personne ne ferra à ma place (le tu peut dire "Tous t'a fais Thierry", bref)
Je vais commencer à crée la fonction avec mes moyen puis quand j'aurais besoin d'aide...

En tous qu'à si vous avez des idées sur comment procéder, se serait déjà une bonne choses !

Je ne sais pas trop comment faire si se n'est enregistrer toutes les opération (Console.Write/Line) et
mettre ça dans un tableau ou autre...

Il faudra aussi bien enregistrer que charger les données en question !
ça ne va pas être très simple à réaliser mais au moins cella m’entrainera un peut
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 13:42
Si déjà il étais possible de lire une position dans la console, lire un caractère par exemple qui me renverrais
par exemple:

Le caractère
La couleur de premier plant
La couleur de second plant

Vous savez si ont peut le faire ça ?!
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 20:58
Bonsoir,

Comment passé un tableau (à dimension multiple) en paramètre et l'utiliser ?

J'en suis là:
Sub Print(ByRef Tableau() As Array, ByVal Chaine As String, Optional ByVal CouleurChaine As Integer 7, Optional ByVal CouleurFontChaine As Integer 0, Optional ByVal PositionX As Integer = -1, Optional ByVal PositionY As Integer = -1, Optional ByVal Alinea As Integer = 0)

        Dim Caractère As String = ""
        Dim CurseurX As Integer = Console.CursorLeft
        Dim CurseurY As Integer = Console.CursorTop

        If PositionX > -1 And PositionX <= Console.LargestWindowWidth Then
            Console.CursorLeft = PositionX
        End If

        If PositionY > -1 And PositionX <= Console.LargestWindowHeight Then
            Console.CursorTop = PositionY
        End If

        For Lecture As Integer = 1 To Chaine.Length
            Caractère = Chaine.Substring(Lecture, 1)
            Tableau(CurseurX, CurseurY) = Caractère ' Ici ça coince !!!
        Next

        Console.ForegroundColor = CType(CouleurChaine, ConsoleColor)
        Console.BackgroundColor = CType(CouleurFontChaine, ConsoleColor)

        If Alinea = 1 Then
            Console.WriteLine(Chaine)
        Else
            Console.Write(Chaine)
        End If

    End Sub
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 20:59
Au faite, le tableau en question dois pouvoir être modifier par
la fonction, c'est pour ça que j'ai mis ByRef d'ailleurs !
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
7 janv. 2013 à 22:19
Bon, impossible de continuer si personne ne veux m'aider
Impossible de trouver comment on fait
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
9 janv. 2013 à 13:45
Bon, j'ai terminer, ça vaux que que ça vaux mais déjà c'est pas mal du tous je trouve:
Module Module1

    Public Tableau(1000, 1000, 3) As String

    Function ConsoleCopy(ByVal CaractèreDépart As Integer, ByVal LigneDepart As Integer, ByVal CaractèreFin As Integer, ByVal LigneFin As Integer, ByVal PositionCollageX As Integer, ByVal PositionCollageY As Integer) As Integer

        Console.CursorLeft = PositionCollageX
        Console.CursorTop = PositionCollageY

        For Ligne As Integer = LigneDepart To LigneFin

            For Caractère As Integer = CaractèreDépart To CaractèreFin

                Console.ForegroundColor = CType(Tableau(Caractère, Ligne, 1), ConsoleColor)
                Console.BackgroundColor = CType(Tableau(Caractère, Ligne, 2), ConsoleColor)
                Console.Write(Tableau(Caractère, Ligne, 0))

            Next

        Next

        Return 0

    End Function

    Sub Print(ByVal Chaine As String, Optional ByVal CouleurChaine As Integer 7, Optional ByVal CouleurFontChaine As Integer 0, Optional ByVal PositionX As Integer = -1, Optional ByVal PositionY As Integer = -1, Optional ByVal Alinea As Integer = 0)

        Dim Caractère As String = ""
        Dim CurseurX As Integer = Console.CursorLeft
        Dim CurseurY As Integer = Console.CursorTop

        If PositionX > -1 And PositionX <= Console.LargestWindowWidth Then
            Console.CursorLeft = PositionX
            CurseurX = PositionX
        End If

        If PositionY > -1 And PositionX <= Console.LargestWindowHeight Then
            Console.CursorTop = PositionY
            CurseurY = PositionY
        End If

        For Lecture As Integer = 0 To Chaine.Length - 1
            Caractère = Chaine.Substring(Lecture, 1)
            Tableau(CurseurX + Lecture, CurseurY, 0) = Caractère
            Tableau(CurseurX + Lecture, CurseurY, 1) = CStr(CouleurChaine)
            Tableau(CurseurX + Lecture, CurseurY, 2) = CStr(CouleurFontChaine)
        Next

        Console.ForegroundColor = CType(CouleurChaine, ConsoleColor)
        Console.BackgroundColor = CType(CouleurFontChaine, ConsoleColor)

        If Alinea = 1 Then
            Console.WriteLine(Chaine)
        Else
            Console.Write(Chaine)
        End If

    End Sub

    Sub Main()

        Print("Il", ConsoleColor.Red, ConsoleColor.Yellow)
        Console.ResetColor()
        Print(" ")

        Print("était", ConsoleColor.Yellow, ConsoleColor.Blue)
        Console.ResetColor()
        Print(" ")

        Print("une", ConsoleColor.Red, ConsoleColor.White)
        Console.ResetColor()
        Print(" ")

        Print("fois", ConsoleColor.Yellow, ConsoleColor.DarkGreen)
        Console.ResetColor()
        Print(" ")

        Console.WriteLine("")

        ConsoleCopy(0, 0, 18, 0, 0, 2)
        ConsoleCopy(0, 0, 18, 0, 0, 4)
        ConsoleCopy(0, 0, 18, 0, 0, 6)

        Console.ResetColor()
        Console.ReadLine()

    End Sub


End Module


Vous en pensez quoi ?
Serait-il possible que vous puissiez l'améliorer ?!
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
9 janv. 2013 à 15:19
Bon c'est pas encore bien au point mais j’espère que vous pourrez m'aider
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
10 janv. 2013 à 09:48
J'en suis ici mais ça coince

Module Module1

    Public Tableau(1000, 1000, 3) As String

    Function ConsoleCopy(ByVal CaractèreDépart As Integer, ByVal LigneDepart As Integer, ByVal CaractèreFin As Integer, ByVal LigneFin As Integer, ByVal PositionCollageX As Integer, ByVal PositionCollageY As Integer) As Integer

        Console.CursorLeft = PositionCollageX
        Console.CursorTop = PositionCollageY

        For Ligne As Integer = LigneDepart To LigneFin

            For Caractère As Integer = CaractèreDépart To CaractèreFin
                Print(Tableau(Caractère, Ligne, 0), CInt(Tableau(Caractère, Ligne, 1)), CInt(Tableau(Caractère, Ligne, 2)))

            Next

            Console.CursorLeft = PositionCollageX
            Console.CursorTop = Console.CursorTop + 1

        Next

        Return 0

    End Function

    Sub Print(ByVal Chaine As String, Optional ByVal CouleurChaine As Integer 7, Optional ByVal CouleurFontChaine As Integer 0, Optional ByVal PositionX As Integer = -1, Optional ByVal PositionY As Integer = -1, Optional ByVal Alinea As Integer = 0)

        Dim Caractère As String = ""
        Dim CurseurX As Integer = Console.CursorLeft
        Dim CurseurY As Integer = Console.CursorTop

        If PositionX > -1 And PositionX <= Console.LargestWindowWidth Then
            Console.CursorLeft = PositionX
            CurseurX = PositionX
        End If

        If PositionY > -1 And PositionX <= Console.LargestWindowHeight Then
            Console.CursorTop = PositionY
            CurseurY = PositionY
        End If

        For Lecture As Integer = 0 To Chaine.Length - 1
            Caractère = Chaine.Substring(Lecture, 1)
            Tableau(CurseurX + Lecture, CurseurY, 0) = Caractère
            Tableau(CurseurX + Lecture, CurseurY, 1) = CStr(CouleurChaine)
            Tableau(CurseurX + Lecture, CurseurY, 2) = CStr(CouleurFontChaine)
        Next

        Console.ForegroundColor = CType(CouleurChaine, ConsoleColor)
        Console.BackgroundColor = CType(CouleurFontChaine, ConsoleColor)

        If Alinea = 1 Then
            Console.WriteLine(Chaine)
        Else
            Console.Write(Chaine)
        End If

    End Sub

    Sub Main()

        Print("Il", ConsoleColor.Red, ConsoleColor.Yellow)
        Console.ResetColor()
        Print(" ")

        Print("était", ConsoleColor.Yellow, ConsoleColor.Blue)
        Console.ResetColor()
        Print(" ")

        Print("une", ConsoleColor.Red, ConsoleColor.White)
        Console.ResetColor()
        Print(" ")

        Print("fois", ConsoleColor.Yellow, ConsoleColor.DarkGreen)
        Console.ResetColor()
        Print(" ")

        Console.WriteLine("")

        ConsoleCopy(0, 0, 18, 0, 0, 2)
        ConsoleCopy(0, 0, 18, 0, 0, 4)
        ConsoleCopy(0, 0, 18, 0, 0, 6)

        'ConsoleCopy(0, 0, 18, 2, 0, 4)


        Console.ResetColor()
        Console.ReadLine()

    End Sub


End Module
0
Rejoignez-nous