Programme VB6 traduction - VB/VBA/VBS - Programmation
Marsh Posté le 06-09-2010 à 18:11:24
donc la tu veux qu'on t'explique ce que fait ce programme ?
Il ouvre excel (un nouveau classeur)
Ouvre deux fichier binaire
lis ces deux fichier pour placer les donner dans une variable tableau
ferme les deux fichier
remplis le classeur Excel avec la variable tableau
"The conversion is finished !"
fait un "save as" sur le nouveau classeur.
Marsh Posté le 06-09-2010 à 18:12:58
Redim bytbuffer((numRecords + 1) * 4) //J'imagine qu'on remplit le tableau bytbuffer
//mais de quelle facon?
non c'est un redimensionnement de tableau
VB ne sais pas faire de tableau de taille variable
on est obligé de le redéclarer si on veux l'agrandir.
les fonction de lecture//écriture sont ici :
(après pourquoi le fichier est lu de cette manière, je ne sais pas.)
Get #2, , sinArray(numRecords) //?
For l = 0 To 3
Get #2, numRecords * 4 +l +1, bytbuffer // ?
Next l
For j = 0 To 3
Put#1, numRecords * 4 + 1, bytbuffer(3-j) //?
Next j
Get #1, numRecords * 4 + 1, convertedArray(numRecords) //?
Marsh Posté le 15-09-2010 à 16:28:13
Xxxaaavvv a écrit : Redim bytbuffer((numRecords + 1) * 4) //J'imagine qu'on remplit le tableau bytbuffer |
Merci!!
Mais justement c'est la manière de lire/écrire que je n'arrive pas à cerner...
Marsh Posté le 06-09-2010 à 12:15:46
Bonjour à tous,
J'ai un programme en VB6 que j'essaye de traduire. En effet, je ne fais que du C (à un petit niveau)
et le VB 6 m'était complètement inconnu.
Je suis donc allée sur pas mal de tutoriaux pour essayer de comprendre comment ca marche.
Je vous poste donc le programme avec mes commentaires (sur ce que j'ai compris ou cru comprendre...)
Le but de ce programme est de prendre un fichier à proiri biniare et de le convertir sous un format exploitable comme excel.
Si on devait mettre ce fichier dans un tableau celui-ci aurait 64 colonnes et un nombre de lignes inconnues.
Mon but à moi serait de le faire sous C mais ca c'est autre chose...
Merci d'avance!
Option Explicit
Dimm WithEvents xlobj As Excel.Application
Private Sub Command1_Click()
Dim i, j, k, x, l As Integer
X=0
Dim nbProj As Integer
DimnumRecords
numRecords = -1
Dim bytbuffer() As Byte //Creation d'un tableau dont les cellules sont de taille 1 octet
Dim sinArray() As single //SinArray est un entier
Dim convertedArray() As single //convertedArray est un entier
Dim nomFichier, nomFichier2
Dim ExcelAppli As object
Dim NewXlFile As Object
Set ExcelAppli = CreateObject("Excel.Application" )
set NewXlFile = ExcelAppli.workbooks.Add
Open "c:\TEMP\converted.sin" For Binary As #1 //Ouvrir le fichier converted.sin en mode binaire
Open "c:\TEMP\aconvertir.sin" For Binary As #2 //Ouvrir le fichier aconvertir.sin en mode binaire
Do until EOF(2) // Faire jusqu'à la fin du fichier2
numRecords = numRecords + 1
reDim Preserve sinArray(numRecords) // ?
ReDim Preserve convertedArray(numRecords) //?
Redim bytbuffer((numRecords + 1) * 4) //J'imagine qu'on remplit le tableau bytbuffer
//mais de quelle facon?
Get #2, , sinArray(numRecords) //?
For l = 0 To 3
Get #2, numRecords * 4 +l +1, bytbuffer // ?
Next l
For j = 0 To 3
Put#1, numRecords * 4 + 1, bytbuffer(3-j) //?
Next j
Get #1, numRecords * 4 + 1, convertedArray(numRecords) //?
Loop
ReDim table(numRecords, 64) //Nouvelle dimension pour table
Close#2
Close#1
k=0
Do while k< numRecords -1
For i=0 To numRecords /64 -1
For j=0 To 63
Table(i,j) = convertedArray(k)
NewXLFile1.Sheets("Feuil1" ).Cells(i +1, j + 1).Value = Table(i,j) //On remplit le fichier excel avec le tableau table
k= k +1
Next j
Next i
Loop
MsgBox ("The conversion is finished !" )
nomFichier = "c:\TEMP\test"
NewXLFile1.SaveAs Left(nomFichier, Len(nomFichier)) & "xls" //Enregistrement fichier xls
NewXLFile1.Close False
ExcelAppli.Quit
Set NewXlFile1 = Nothing
Set ExcelAppli = Nothing
End sub