Private Type machin un As String * 10 deux As String * 10 End Type Dim toto() As machin Private Sub Command1_Click() 'ReDim toto(3) ReDim Preserve toto(titi() + 1) toto(0).un = "a" toto(0).deux = "b" toto(1).un = "aa" toto(1).deux = "bb" For i = 0 To 1 MsgBox toto(i).un & vbCrLf & toto(i).deux Next End Sub Private Function titi() If Not (Not toto) Then titi = UBound(toto) Else titi = 0 End If End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionOption Explicit Private Type VBPReference Desc As String GUID As String Name As String Path As String Type As Integer Version As String End Type Private TVBPReference As VBPReference Public p_aTVBPReference() As VBPReference Public Function GetVBPInfos() As VBPReference Dim strLine As String, astrLine() As String, strKey As String, strVersion As String, X As Integer TVBPInfos.Folder = BH_GetFolderName(P_strProjectName, True) TVBPInfos.Version = BH_GetFileVersion(P_strProjectName) Call p_oFSO.OpenFile("D:\Applications\ActiveX Controls\ADO Viewer\BH_ADOViewer.VBP", omcForReading, False, TristateUseDefault) Do While Not p_oFSO.FileProperties().EndOfFile strLine p_oFSO.ReadFile(rfcReadOneLine): astrLine Split(strLine, "=") If BH_UBound(astrLine) >= 0 Then Select Case UCase(astrLine(0)) Case "TYPE" TVBPInfos.Type = P_oParams.GetInfoFromConstant("REFERENT_OLEDLL").SubKey Case "REFERENCE" TVBPReference = EmptyReference() TVBPReference.Type = P_oParams.GetInfoFromConstant("REFERENT_OLEDLL").SubKey TVBPReference.GUID = "{" & BH_DelimitedString(astrLine(1), "{}") & "}" TVBPReference.Name = BH_GetFileName(BH_DelimitedString(astrLine(1), "#", 3), True) TVBPReference.Desc = BH_GetRightString(astrLine(1), "#") astrLine = Split(Trim(BH_GetFolderName(BH_DelimitedString(astrLine(1), "#", 3), True)), "") TVBPReference.Path = BH_GetFolderName(Join(astrLine, ""), True) TVBPReference.Version = BH_GetFileVersion(TVBPReference.Path & TVBPReference.Name) ' Call AddReference Case "OBJECT" TVBPReference = EmptyReference() TVBPReference.GUID = "{" & BH_DelimitedString(astrLine(1), "{}") & "}" TVBPReference.Name = Trim(BH_GetRightString(astrLine(1), ";")) strKey = "TypeLib" & TVBPReference.GUID strKey = strKey & "" & BH_RegEnumKey(HKEY_CLASSES_ROOT, strKey)(0) Call BH_GetKeyValue(HKEY_CLASSES_ROOT, strKey, "", strVersion) TVBPReference.Desc = strVersion strKey = strKey & "" & BH_RegEnumKey(HKEY_CLASSES_ROOT, strKey)(0) 'strKey pas bon strKey = strKey & "" & BH_RegEnumKey(HKEY_CLASSES_ROOT, strKey)(0) Call BH_GetKeyValue(HKEY_CLASSES_ROOT, strKey, "", strVersion) TVBPReference.Path = BH_GetFolderName(strVersion, True) ' Call AddReference(P_oParams.GetInfoFromConstant("REFERENT_OCX").SubKey) TVBPReference.Version = BH_GetFileVersion(TVBPInfos.Path & TVBPInfos.Name) Case "CLASS" TVBPReference = EmptyReference() TVBPReference.Name = BH_GetRightString(astrLine(1), "") TVBPReference.GUID "": TVBPInfos.Desc "" astrLine = Split(Trim(BH_GetRightString(astrLine(1), ";")), "") For X = 0 To BH_UBound(astrLine) If astrLine(X) = ".." Then astrLine(X) = Split(p_oFSO.FileProperties.Folder, "")(X) End If Next TVBPReference.Path = BH_GetFolderName(Join(astrLine, ""), True) ' Call AddReference(P_oParams.GetInfoFromConstant("REFERENT_CLS").SubKey) End Select End If Loop Call p_oFSO.CloseFile End Function Private Sub AddReference() ReDim Preserve p_aTVBPReference(X_UBound(p_aTVBPReference) + 1) p_aTVBPReference(X_UBound(p_aTVBPReference)) = TVBPReference End Sub Private Sub Form_Load() TVBPReference = GetVBPInfos() End Sub
Private Type machin un As String * 10 deux As String * 10 End Type Dim toto() As machin Private Sub Command1_Click() MsgBox titi() ReDim Preserve toto(titi() + 1) MsgBox titi() End Sub Private Function titi() If Not (Not toto) Then titi = UBound(toto) Else titi = 0 End If End Function
Private Type VBPReference Desc() As String GUID() As String DLLName() As String Path() As String DLLType() As Integer Version() As String End Type Private TVBPReference As VBPReference
Private Type machin un As String deux As String End Type