begin process at 2012 02 16 18:05:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Trie d'un tableau dynamique avec type?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trie d'un tableau dynamique avec type?

mardi 29 juin 2004 à 02:12:36 | Trie d'un tableau dynamique avec type?

pcpunch

Slt pour les besoin d'un prog je dois trie un tableau dynamique comptenant un type :

Private Type V
D As String
Deb As String
Fin As String
Prog As String
Lib As String
End Type

Dim TabLigne() As V

D etant une date (29.06.)
Deb une heure de debut(13:55)
Fin une heures de fin (sans importance)
Prog sans importante
Lib sans importance

Voila je dois trie ce tableau :
1er par ordre de date
2eme par ordre de debut

Si qq a la solution une fonction ou autres car je sature ce soir lol, je n'ai pas trouver !!!!
++ merci
mardi 29 juin 2004 à 03:00:10 | Re : Trie d'un tableau dynamique avec type?

DeadlyPredator

Qu'est-ce que tu pense de ça :
(j'utilise un listbox pour le trie (lstTriage) et une autre pour afficher les résultats (list1))


Option Explicit

Private Type V
D As String: Deb As String: Fin As String: Lib As String
End Type

Private TabLigne() As V

Private Sub Trier(Liste As ListBox)
Dim arrBuf() As V, I As Long, Col As Variant, lngDecalage As Long
Liste.Clear
For I = LBound(TabLigne) To UBound(TabLigne)
Liste.AddItem TabLigne(I).D & "*" & TabLigne(I).Deb & "@" & I
Next
ReDim arrBuf(LBound(TabLigne) To UBound(TabLigne))
For I = LBound(arrBuf) To UBound(arrBuf)
Col = Split(Liste.List(I - LBound(arrBuf)), "@", 2)
arrBuf(I) = TabLigne(Col(1))
Next
TabLigne = arrBuf
End Sub

Private Sub RemplirTableau()
Dim I As Long
ReDim TabLigne(1 To 255)
For I = 1 To 255
Randomize
TabLigne(I).D = Int(Rnd * 9999) + 1
Randomize
TabLigne(I).Deb = Int(Rnd * 9999) + 1
Next
End Sub

Private Sub AfficherResultats()
Dim I As Long
For I = LBound(TabLigne) To UBound(TabLigne)
List1.AddItem TabLigne(I).D & " - " & TabLigne(I).Deb
Next
End Sub
Private Sub Form_Load()
RemplirTableau
Trier lstTriage
AfficherResultats
End Sub



VIVE LE QUÉBEC!
Essayez ça

Dim l As Long: Do Until l = -1: l = l + 1: Loop

p.s.Si vous l'avez essayé, vous êtes vraiment stupide
mardi 29 juin 2004 à 11:51:47 | Re : Trie d'un tableau dynamique avec type?

pcpunch


Dsl mais ton code ne fonctionne pas!!!

ma question reste ouverte , je bloque la dessus!!!
mardi 29 juin 2004 à 12:10:05 | Re : Trie d'un tableau dynamique avec type?

liquide

Membre Club
bon bien etant donné que je connais tes capacités a développer, je ne suis pas sur que ce soit ce que tu attends mais tampis je te poste une eventuelle solution.

j'ai juste fais un test basic avec une listbox



Private Type V
D As String
Deb As String
Fin As String
Prog As String
Lib As String
End Type

Dim TabLigne(15) As V

Private Sub Command1_Click()
List1.Clear
For i = 0 To 15
For k = 1 To Len((TabLigne(i).D))
pp = pp & Asc(Mid$((TabLigne(i).D), k, 1))
Next k
For j = i + 1 To 15
For k = 1 To Len((TabLigne(j).D))
aa = aa & Asc(Mid$((TabLigne(j).D), k, 1))
Next k

If pp < aa Then
mm = TabLigne(j).D
TabLigne(j).D = TabLigne(i).D
TabLigne(i).D = mm
End If

aa = ""
Next j
Next i

For i = 0 To 15
List1.AddItem TabLigne(i).D
Next i

End Sub

Private Sub Form_Load()
For i = 0 To 15
TabLigne(i).D = i & "-12"
List1.AddItem TabLigne(i).D
Next i
End Sub


il y a forcement a redire sur le code mais bon ... à tester
dsl pour les variables, c'etait du rapidos

bonne prog
liquide
mercredi 30 juin 2004 à 00:33:02 | Re : Trie d'un tableau dynamique avec type?

DeadlyPredator

il faut mettre 2 liste dans la form : une appellée list1 et une autre appellée lstTriage qui à la propriétée "Sorted" à True. C'est censé marcher parfaitement.

VIVE LE QUÉBEC!
Essayez ça

Dim l As Long: Do Until l = -1: l = l + 1: Loop

p.s.Si vous l'avez essayé, vous êtes vraiment stupide
mercredi 30 juin 2004 à 12:16:21 | Re : Trie d'un tableau dynamique avec type?

pcpunch

Non je n'utilise pas les listbox!!!!

Le probléme est réglé merci a juvamine pour ses explications...

Voici le code utilisans un trie a bulle, c'est pas le trie le plus rapide mais ca marche !!

Je le depose au cas ou qq cherche ça!!!


Private Type V
StrDate As Date
StrDebut As Date
StrFin As String
StrCha As String
End Type
Dim Tabligne(0 To 5) As V

Private Sub Form_Load()

Tabligne(0).StrDate = "26/06"
Tabligne(0).StrDebut = "12:30"
Tabligne(0).StrFin = "12:55"
Tabligne(0).StrCha = "TF1"

Tabligne(1).StrDate = "26/06"
Tabligne(1).StrDebut = "11:30"
Tabligne(1).StrFin = "12:59"
Tabligne(1).StrCha = "C+"

Tabligne(2).StrDate = "29/06"
Tabligne(2).StrDebut = "02:30"
Tabligne(2).StrFin = "02:55"
Tabligne(2).StrCha = "ARTE"

Tabligne(3).StrDate = "26/06"
Tabligne(3).StrDebut = "22:30"
Tabligne(3).StrFin = "02:55"
Tabligne(3).StrCha = "TF1"

Tabligne(4).StrDate = "29/06"
Tabligne(4).StrDebut = "01:30"
Tabligne(4).StrFin = "02:55"
Tabligne(4).StrCha = "F3"

Tabligne(5).StrDate = "26/06"
Tabligne(5).StrDebut = "00:10"
Tabligne(5).StrFin = "02:55"
Tabligne(5).StrCha = "F2"

'Affichage du tableau dans list1 non trié
Call affiche(List1)

End Sub

Private Sub Command1_Click()

'1 Trie par date
'===============
Dim temp As V

Do
nb = 0
DoEvents

For i = 0 To UBound(Tabligne) - 1

If Tabligne(i).StrDate > Tabligne(i + 1).StrDate Then

temp.StrDate = Tabligne(i).StrDate
temp.StrDebut = Tabligne(i).StrDebut
temp.StrFin = Tabligne(i).StrFin
temp.StrCha = Tabligne(i).StrCha

Tabligne(i).StrDate = Tabligne(i + 1).StrDate
Tabligne(i).StrDebut = Tabligne(i + 1).StrDebut
Tabligne(i).StrFin = Tabligne(i + 1).StrFin
Tabligne(i).StrCha = Tabligne(i + 1).StrCha

Tabligne(i + 1).StrDate = temp.StrDate
Tabligne(i + 1).StrDebut = temp.StrDebut
Tabligne(i + 1).StrFin = temp.StrFin
Tabligne(i + 1).StrCha = temp.StrCha

nb = nb + 1

End If

Next i

Loop Until nb = 0

'2 Trie par Heure de debut
'=========================

Dim var As Date
i = 0
While i < UBound(Tabligne)

lemin = i

var = Tabligne(i).StrDate

'on recup l'indice de la derniere date pareil
While Tabligne(i).StrDate = var And i < UBound(Tabligne)
i = i + 1
Wend
lemax = i - 1

Do
nb = 0
For j = lemin To lemax - 1

If Tabligne(j).StrDebut > Tabligne(j + 1).StrDebut Then

temp.StrDate = Tabligne(j).StrDate
temp.StrDebut = Tabligne(j).StrDebut
temp.StrFin = Tabligne(j).StrFin
temp.StrCha = Tabligne(j).StrCha

Tabligne(j).StrDate = Tabligne(j + 1).StrDate
Tabligne(j).StrDebut = Tabligne(j + 1).StrDebut
Tabligne(j).StrFin = Tabligne(j + 1).StrFin
Tabligne(j).StrCha = Tabligne(j + 1).StrCha

Tabligne(j + 1).StrDate = temp.StrDate
Tabligne(j + 1).StrDebut = temp.StrDebut
Tabligne(j + 1).StrFin = temp.StrFin
Tabligne(j + 1).StrCha = temp.StrCha
nb = nb + 1

End If

Next j

Loop Until nb = 0

i = lemax + 1
Wend

'Affichage du tableau trié par date et par heure
Call affiche(List2)

End Sub




Sub affiche(Src As ListBox)
Src.Clear
For i = 0 To UBound(Tabligne)
With Tabligne(i)
Src.AddItem .StrDate & " " & .StrDebut & " " & .StrFin & " " & .StrCha
End With
Next i
End Sub




++


Cette discussion est classée dans : trie, dynamique, string, type, tableau


Répondre à ce message

Sujets en rapport avec ce message

Trie tableau dynamique avec type [ par pcpunch ] Slt j'ai un tableau "ARTICLE" dynamique avec un type :Type ArticleVCode As StringNom As StringFamille As StringTVA As StringTTC As StringEnd TypePubl Convertion de string en decimal [ par tiwolfette ] Bonjour à tous,Je stocke dans un tableau de type string une grande quantité d'info et notamment des chiffres a virgules. Chiffres dont je dois me serv excel tableau croise dynamique [ par chmod__777 ] Bonjour a tous,Voila mon probleme, j ai des donnees dans une feuille excel reparties de la sorte:Type de magazine, Nom du magazine, PointsJe cree un t Tableau Dynamique [ par maesius ] Bonjour,Voial g fait cela sur une form :Private Type Type_Tab_position TPos_nom As String TPos_actif As Integer TPos_X As Single TPos_Y As taille en mémoire de tableau ou de type personnel [ par marco62118 ] bonjour à tous voilà un petit bout de code. Type TyCellule Mot_Av_H As String Mot_Av_V As String Mot_Ap_H As String Mot_Ap_V As St Tableau dynamique [ par bizzard4 ] BonjourJ'ai fait une application web (ASB.NET - VB) avec un tableau dynamique qui affiche les dépenses et revenus de ma compagnie. Je voudrais faire l incompatibilité de type [ par h_adil ] lorsque je compile mon code sur vba j'ai un message d'erreur "incompatibilité de type" strTabName=CDE20070702090603189.txtje voudrais savoir comment i Liaison Module de classe pour DLL [ par drouault ] Bonjour,J'ai un souci que je n'arrive pas à résoudre mais qui doit pourtant être assez simple. Je débute dans la programmation avec les modules de cla Boucle dans tableau qui renvoie faux a chaque fois [ par niko14 ] Bonjour tout le monde, eh oui c'est encore moi!!!voila j'ai un petit probleme!!je charge un tableau avec 41000 codes, oui rien que ca!!ensuite j'ai fa tableau dynamique [ par darkflyer ] bonjour,j'avais une question concernant l'utilisation des tableau dynamiques pour lire un fichier dont je conais pas le nombre lignes ni de colonnes.c


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,168 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales