Gambas France BETA


Pas de compte ? Incription

derniere ligne sur listbox ?

1
AuteurMessages
archi12#1 Posté le 15/6/2010 à 17:54:00
bonjour a tous,
comment toujours visualiser la derniere ligne entrée dans une listbox (apres listbox1.add("xx") ? sans utiliser le slider
genre: listbox1.listIndex = 22
merci
Gamuti#2 Posté le 15/6/2010 à 18:19:00
Non, il n'est pas possible de renvoyer un item en fonction de son numéro d'ordre depuis une listbox.
En tout cas, pas directement.
Par contre, si tu n'as pas mis la propriété SORTED à TRUE alors, tu peux utiliser cette méthode :
1
File.Save("FichierQuelconque.txt", ListBox1.List.Join(Chr(13) & Chr(10)))

Ce qui génèrera un fichier au format texte qui est compatible windows.
Les CHR permettent de créer des retours chariots. Si tu ne les mets pas alors, tous tes items s'enchaineront mot à mot et collés.

Ensuite, il te suffira de relire ton fichier texte avec ceci :
1
PRIVATE OuvrirFichier()DIM hFile AS FileDIM Chaine AS StringhFile=OPEN "FichierQuelconque.txt" FOR INPUT DO IF Eof(hFile) THEN EXIT LINE INPUT #hFile, Chaine LOOPCLOSE #hFilePRINT ChaineEND


Ce qui t'imprimeras dans la console le dernier item de ta listbox.

On peut aussi aller beaucoup plus loin en sélectionnant un numéro d'ordre.
Exemple, ta listbox contient une trentaine d'item.
Tu veux sortir la 18ème valeur.
Alors, le programme sera le suivant :
1
PRIVATE OuvrirFichier()DIM hFile AS FileDIM Chaine AS StringDIM a AS Integera=0hFile=OPEN "FichierQuelconque.txt" FOR INPUT DO IF Eof(hFile) THEN EXIT LINE INPUT #hFile, Chaine IF a = 18 THEN EXIT LOOPCLOSE #hFilePRINT ChaineEND



Voili Voilou
archi12#3 Posté le 15/6/2010 à 20:00:00
merci gamuti pour cette réponse rapide, ca marche impec
en fouillant encore un peu j'ai trouve:

PUBLIC SUB addlist (param AS String)
DIM s AS String
listbox1.add (param)
listbox1.index = listbox1.count - 1
s = listbox1.Text
PRINT s
END

d'accord, ca ressemble à du VB, mais ...
spheris#4 Posté le 16/6/2010 à 18:03:00
archi12,
Ou tout simplement, la commande :
1
listview1.count
te renvoi le dernier index de ta listview.

Bonne soirée
gambix#5 Posté le 16/6/2010 à 18:27:00
Faire simple !non spheris ... lisview.count te renvoit le nombre d'entrée... le dernier élément est listview.count - 1 car le compte commence a 0 et pas a 1


je signale au passage l'existance dans les tableaux de montableau.max qui équivaux a montableau.count - 1

mon arrgg gamuti ... on dirait moi ya 15 ans :)


sur de moi mais surement pas dans le vrai... ça viendra soit en sure... persévère


Primo sous unix on n'utilise pas chr(13) mais uniquement chr(10)

print chr(10) = print "\n"

Print "maphrase" & chr(10)
ou
Print "maphrase\n"


tout ça te fait un retour a la ligne

enregistrer une listbox dans un fichier ?

File.save("monfichier",Listbox.list.join("\n"))


la relire ?

Listbox.list = split(file.load("monfichier"))

http://gambasdoc.org/help/comp/gb.qt4/listbox/list?fr&v3


surtout quand on veut conserver un ordre dans les élément mémorisable ... je conseil de ne pas se servir de sort... car les élément change forcément d'index.
donc il vaut mieux les trier avant

donc la solution était


listbox.index = listbox.count-1
print listbox.text

ça sert a quoi ta fonction archi12 ?

PUBLIC SUB addlist (param AS String)
listbox.add(param)
PRINT param
END

ça fait la même chose ! mais ça sert a rien un listbox.add(monelement) suffit
Moins de texte dans une signature c'est agrandir son espace.
Gamuti#6 Posté le 17/6/2010 à 20:04:00
Je croyais que ListBox1.Count renvoyait le nombre d'éléments de la listbox. Si ça renvoie du texte, alors, je m'y intéresserait volontier. Ça simplifiera largement mes programmes.

Concernant les CHR, J'ai testé le seul Chr(10) mais ça ne suffisait pas.
D'ailleurs, lorsqu'on ouvre un fichier texte avec gedit, on constate que le retour chariot n'est pas conforme - notamment pour relire avec LINE INPUT -
Par contre, les retour chariot avec /n ... je ne connait pas. Et Split... pareil, je ne connait pas.

J'irai me coucher ce soir moins bête qu'hier.
manu#7 Posté le 17/6/2010 à 22:47:00
Avec Gambas ca roule !Split et toutes les fonctions qui gerent les chaines de caractères c'est ICI, Indispensable ! :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
1