Ce sujet est résolu.
1 | |||||||||
Auteur | Messages | ||||||||
---|---|---|---|---|---|---|---|---|---|
loki | #1 Posté le 14/8/2010 à 10:14:00 | ||||||||
Bonjour gambassiens, Voila, j'ai un problème sur les tableaux 2d crées a la volée, je n'arrive pas a les remplir Prenons un fichier texte(Text1) a mettre dans un tableau(sTableauFinal)
Je fais comme ca
avec un tableau fixe ca fonctionne mais si je remplace:
Sachant que mon fichier texte original a 106 éléments par ligne et un nombre de ligne en constante évolution (plus de 150), jusqu'à maintenant je surdimensionnait mon tableau (sTableauFinal As New String[300, 107]) je copiai chaque ligne dans un fichier temp en remplaçant les espaces pas des entrées et je chargeai chaque lignes du fichier temp dans mon tableau et comme ca pour toutes les lignes de mon fichier, il doit y avoir plus simple non ? moi je voudrai ne pas a avoir a surdimensionner mon tableau, ne pas créer de fichier tampon (temp) et remplir mon tableau en même temps qu'il lis le fichier (Text1). Mais déjà es ce possible de créer un tableau a la volée en 2d ? merci d'avance loki Dell Vostro 3750 Ubuntu 13.04 - Gambas 3.4.1 | |||||||||
gambix | #2 Posté le 14/8/2010 à 20:19:00 | ||||||||
Faire simple ! | Private $aTab As New String[][] Public Sub main() Dim s As String For Each s In Split(File.Load("Text1"), "\n") $aTab.Add(Split(s, " ")) Next End et hop bon maintenant quelques expilcations : private $sTab as string[][] créé en faite un tableau d'objet contenant des variable de type string[] cest des variable dynamique non instanciée donc a chaque fois qu'on veut ajouter une chaine il faut faire mystarray = new string[] $sTab.add(mystarray) voila split retourne un tableau instancié généré a partir de la découpe d'une chaine suivant un symbole dans ton cas un espace Moins de texte dans une signature c'est agrandir son espace. | ||||||||
loki | #3 Posté le 14/8/2010 à 21:24:00 | ||||||||
wouah, tu ma cassé le morale, tu as fait en 2 mn et 3 lignes, ce que j'ai fait en 2 h et 30 lignes Merci, ca fonctionne très bien...les finesses de la crevette bleu Pourquoi un $ devant la variable $aTab(ça marche aussi sans) quelle est sont utilité(c'est ça qui créé la variable dynamique (non instanciée)???) ? a+ loki Dell Vostro 3750 Ubuntu 13.04 - Gambas 3.4.1 | |||||||||
gambix | #4 Posté le 14/8/2010 à 21:56:00 | ||||||||
Faire simple ! | c'est une convention de nommage ! ..; une bonne habitude a prendre quand on nomme ses variable ... le $ signifie variable globale. A suivre : http://gambasdoc.org/help/doc/naming?fr Plus vieux mais toujour utile : http://gambasdoc.org/help/doc/namingconvention?fr Moins de texte dans une signature c'est agrandir son espace. | ||||||||
loki | #5 Posté le 14/8/2010 à 22:27:00 | ||||||||
Je ne l'avais pas vus sur la doc ou pas prêté attention quand je suis allé sur cette page je vais commencer a prendre l'habitude de dollariser mes variables globales merci encore pour toutes ses explications. Dell Vostro 3750 Ubuntu 13.04 - Gambas 3.4.1 | |||||||||
1 |