Neiflheim1
Messages postés31Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention20 janvier 2010
-
16 nov. 2009 à 12:25
Neiflheim1
Messages postés31Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention20 janvier 2010
-
19 nov. 2009 à 09:15
Bonjour à tous,
Alors je continue mon projet d'automatisation de calcul d'un indice qualité des eaux, et je bloque un peu sur un point (qui je l'avoue ne me semble pas bien compliqué...).
Tout d'abord voici mon fichier texte de départ (très simplifié) :
Je le détaille brièvement, face à DIM (4 5 2), nous avons les coordonnées des points d'une maille. Donc nous avons 4 points en ordonnées, 5 en abscisse, et 2 en profondeur. Ce qui fais que cela représente un maillage de 3 lignes, 4 colonnes.
Le but de mon script et de calculer automatiquement la surface d'une cellule.
Donc tout d'abord je dois récupérer les dimensions de mes mailles (4 5 1), ce que j'ai fais avec un split...
Public Function ReadCoord(ByVal FileName As String) As DataTable
Try
Dim cnt As Integer = 0
Dim fs As New IO.FileStream(FileName, IO.FileMode.Open)
Dim sr As New IO.StreamReader(fs)
Dim Coord As Array
Dim X, Y, Z, Ci As Integer
While Not sr.EndOfStream
cnt += 1
Dim line As String = sr.ReadLine
If line.Substring(0, 3) = "DIM" Then
Coord = Split(line, " ")
X = Coord(2)
Y = Coord(1)
Z = Coord(3)
Exit While
End If
End While
Catch ex As Exception
Return Nothing
End Try
End Function
Jusque là tout va bien.
Et c'est là que je demande de l'aide :)
1°
Tout d'abord je dois obtenir 2 tables (une pour les X et une pour les Y) avec les données correspondants à la taille de la cellule, et non plus les coordonnées des points, de la forme suivante :
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 16 nov. 2009 à 13:15
Salut, c'est très complet
Par contre quel est ton soucis ?
Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Neiflheim1
Messages postés31Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention20 janvier 2010 16 nov. 2009 à 13:19
Ben je bloque pour effectuer les trois points que j'ai indiqué, à commencer par créer un tableau en soustrayant la ligne actuelle à la ligne juste après ;)
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 16 nov. 2009 à 13:38
Bon je vais admettre que pour cela tu as besoin d'une datatable
Dim dt as New DataTable()
dt.Columns.add(new DataColumn("toto", System.Type.GetType("System.Double"))) 'Si je ne me trompe pas
Ensuite pour chaque ligne tu doit insérer ta ligne déjà calculée, tu peux faire comme cela :
Dim dr as DataRow = dt.NewRow()
dr("toto") = (36-5)
etc... etc...
Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Vous n’avez pas trouvé la réponse que vous recherchez ?
Neiflheim1
Messages postés31Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention20 janvier 2010 18 nov. 2009 à 13:48
Je ne souhaite pas utiliser de datatable pour le moment, c'est pour cela que j'ai attendu d'avancer dans mon code pour répondre de nouveau.
Voilà ou j'en suis, j'ai réussi à faire les 2 premiers points qui me bloquais, il ne me reste plus que le 3eme, qui est en passe de se terminer, mais j'ai une petite erreur du type :
Une exception de première chance de type 'System.IndexOutOfRangeException'
...
'CALCUL CELL AREA
If cnt = (7 + X + Y + 1) Then
Dim TableauArea(Ci - 1) As String
For Each Item As Object In TableauYF
j = 0
For Each Item2 As Object In TableauXF
TableauArea(k) = (TableauYF(i) * TableauXF(j))
j = j + 1
k = k + 1
Next Item2
i = i + 1
Next Item
'VISUALISATION DES RESULTATS
Dim résultat As String = "résultat X*Y : " & Chr(13) & Chr(13)
For k = 0 To Ci
résultat = résultat & TableauArea(k) & Chr(13)
Next k
MsgBox(résultat)
End If
Le problème dois se situer dans mes deux boucles For each, ou dans l'utilisation de string...