PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 21-06-2007 14:11:31

mial  
White & The Farmerz Gang
Lieu: Nancy
Date d'inscription: 09-02-2007
Messages: 113
Pépites: 4,366
Banque: 18,191,568,319,324

Suppression d'une case d'un tableau

Voila encore une question basique : comment supprimer une case d'un tableau. ( pas de null hein! reduire d'une case le tableau, en plus c'est la derniere a supprimer. ) Creer un nouveau tableau?

Ex :

Code: pb

String array [12]

array[1] = 'a'
array[2] = 'b'
...
array[12] = 'z'

...
//traitement pour la modif
...

if upperbound (array) <> 11 then
 // bah c'est pas bon...
end if


Hors ligne

 

#2 21-06-2007 14:22:53

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: Suppression d'une case d'un tableau

ce n'est pas plus simple de faire ?

Code: pb

long ll_count
ll_count = upperbound(array) - 1

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 21-06-2007 14:26:16

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: Suppression d'une case d'un tableau

Il n'y a pas de moyen simple, la gestion des tableaux en PB reste assez basique.

Solution : crée un second tableau de taille n-1, affecte chaque élément voulu dans une boucle, puis affecte le nouveau tableau (la variable tableau entière, sans crochets) dans l'ancien.
C'est pas très esthétique comme technique... Tu n'aurais pas moyen de faire autrement, en gérant ta taille maxi dans une variable au lieu d'utiliser UpperBound() par exemple ?

{edit : caramba, pas assez rapide !}

Dernière modification par FMolinas (21-06-2007 14:27:31)

Hors ligne

 

#4 21-06-2007 14:32:35

mial  
White & The Farmerz Gang
Lieu: Nancy
Date d'inscription: 09-02-2007
Messages: 113
Pépites: 4,366
Banque: 18,191,568,319,324

Re: Suppression d'une case d'un tableau

je suis pas sur d'avoir compri...
Je ne veux pas recupérer -1 sur le upperbound(), je veux que mon tableau fasse réellement une case de moins.

J'ai pour l'instant fait cette technique de création d'un second tableau, mais je trouve ca vraiment moyen et pensais pouvoir faire ca dynamiquement.

Hors ligne

 

#5 21-06-2007 14:34:00

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: Suppression d'une case d'un tableau

FMolinas a écrit:

Il n'y a pas de moyen simple, la gestion des tableaux en PB reste assez basique.

N'oublies pas que la DW est.... un tableau !
Une DW externe dans une datastore et tu as toutes les méthodes révées de gestion de tableau : tri, ajout, suppression, filtre, recherche, etc...

PB n'est pas si mal finalement


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#6 21-06-2007 14:42:19

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: Suppression d'une case d'un tableau

Chrnico a écrit:

FMolinas a écrit:

Il n'y a pas de moyen simple, la gestion des tableaux en PB reste assez basique.

N'oublies pas que la DW est.... un tableau !
Une DW externe dans une datastore et tu as toutes les méthodes révées de gestion de tableau : tri, ajout, suppression, filtre, recherche, etc...

PB n'est pas si mal finalement

bien joué !

Je ne veux pas recupérer -1 sur le upperbound(), je veux que mon tableau fasse réellement une case de moins.

c'est si dur d'utiliser une case en moins ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 28-06-2007 13:43:41

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Suppression d'une case d'un tableau

Tu peux toujours te faire un petit "NVO maison" du genre n_collection (cf collection Java) avec les méthodes de bases qui accepte tout type d'éléments (types standards, objets systèmes, objets utilisateur)

Pour info pour l'utilisation de la datastore avec des types standards (chaines, nombres, dates) l'idée est de déclarer les colonnes suivantes dans le DWO
* Integer : n° d'ordre (1,2,.....,n)
* String : index ('id1','id2',....'idn')   (=> pour indexer par des chaines au besoin)
* String : type de données
* String : valeur de la donnée convertie en chaine (=> pour les setter et getter il faudra convertir/déconvertir en fonction du type de donnée )

Inconvénient de l'utilisation de la datastore avec les objets : possible uniquement pour les objets maison pour lesquels on peut définir les méthodes serialize et unserialize de transformations objet <-> chaine.
(à moins de rajouter un tableau d'objets en plus en instance du dw control)


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22