Link to home
Start Free TrialLog in
Avatar of kazim cende
kazim cendeFlag for Türkiye

asked on

about FOr process..

above code about FOR..working truly if a vb6 return one project. .But project two or more..not working. and parameters interfere each other..what offer..what do you think..?

Public Sub ForluGercekİslemler1(ByVal frm As Form, ByVal Index As Integer, _
                ByVal ForProgBaslx As Integer, ByVal ForProgBitsx As Integer, _
                ByVal forSatirSayisi As Integer, ByVal Progbasl As Integer, ByVal Progbits As Integer)
                                        
                                                                Dim i11, i12 As Integer
                                                                Dim i21 As Integer
                                                                Dim i31, i32, i33 As Integer
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        If Tmr100(Index) = True Then GoTo 2 'Program ilk başladığında
        If Tmr100(Index) = False Then GoTo 4 'Başka programlarla ortak çalışmaya geçildiğinde
2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

For i11 = 1 To 25
    for1StepDondu(Index, i11) = False
    syxFor(Index, i11) = 0
    forStepSay(Index, i11) = 0
    forI1Sw(Index, i11) = False
    for1DonguSw(Index, i11) = False
    forI1(Index, i11) = 0
    forTO1(Index, i11) = 0
    forSTP1(Index, i11) = 1
    StepNegtFor(Index, i11) = False
    StepPoztFor(Index, i11) = False
    forSatir3(Index, i11) = False
    SatirTekrarlamaFor(Index, i11) = False
    AyniSatirTekrarlamaFor(Index, i11) = False
Next i11
    Forx1(Index) = 0: Forx11(Index) = 0
    syfor = 0

'''''''''''''''FORLU MATEMATİKSEL İŞLEMLERİ YAP'''''''''''''''''''''''''''''''''''''''''''
            For i21 = ForProgBaslx To ForProgBitsx
    GoTo 6
4
                        'i21m(Index) = MainPrgAdim(Index) 'SlvProgAdimFor(Index)
6
                        'MainPrgAdim(Index) = i20m(Index)
                        TypeProgAdim(Index) = "FOR"
                        'Tmr100(Index) = False
                                            'SlvProgAdimFor(Index) = i21m(Index) + 1
                        i21 = i21m(Index)
                
                MainFunct(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1481 + i21 * 110, 10)))
        Select Case MainFunct(Index)
            Case "IF" 'IF VARSA
                                                                Dim IfIndxProg1, IfProgBaslm, IfProgBitis As Integer
                                                                IfPrgSatAtlamaSw = False: IfPrgSatBitsSw = False
                    ifxindx = CInt(Trim(Mid(CalcuKatariP(Index), 1491 + i21 * 110, 10)))
                            For i31 = 1 To ifsay
                                IfIndxProg1 = CInt(Trim(Mid(IfliProgSatirSira(Index), 10 + i31 * 40 - 39, 10)))
                                    If IfIndxProg1 = ifxindx Then
                                        IfProgBaslm = CInt(Trim(Mid(IfliProgSatirSira(Index), 10 + i31 * 40 - 19, 10)))
                                        IfProgBitis = CInt(Trim(Mid(IfliProgSatirSira(Index), 10 + i31 * 40 - 9, 10)))
                                    End If
                            Next i31

                    Call IfliGercekİslemler1(frm, Index, IfProgBaslm, IfProgBitis, IfinSatirSayisi, 1, MathIslemAdt(Index))
                    'Call IfliGercekİslemler3(frm, Index, IfProgBaslm, IfProgBitis) 'if(for(if))) de çalışıyor.
                        If IfPrgSatAtlamaSw = True Then i21 = IfPrgSatAtlama: IfPrgSatAtlamaSw = False
                        If IfPrgSatBitsSw = True Then i21 = IfPrgSatBits: IfPrgSatBitsSw = False
                         syxFor(Index, Forx11(Index)) = syxFor(Index, Forx11(Index)) + (ifbits(Index, ifxindx) + 1 - ifbasl(Index, ifxindx))
            
            Case "FOR" 'FOR VARSA..kendi Ana yada slave For
            
                MainFunct(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1481 + i21 * 110, 10)))
                MathFunct(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1521 + i21 * 110, 10)))
                    FrstVarFOR(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1531 + i21 * 110, 10)))
                    SecnVarFOR(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1541 + i21 * 110, 10)))
                    ReslVarFOR(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1551 + i21 * 110, 10)))
                    forsat(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1461 + i21 * 110, 10)))
                    Forx1(Index) = CInt(Trim(Mid(CalcuKatariP(Index), 1491 + i21 * 110, 10)))
                    Forx11(Index) = CInt(Trim(Mid(CalcuKatariP(Index), 1491 + i21 * 110, 10)))
                    RealSimMod(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 120, 20)))
                                'Kesirli sayıyı string özellikten kurtar. Canlı hale getir.
                                                    Dim i46 As Integer
                                                    Dim e1, e2 As String
                                                        e1 = "": e2 = ""
                                        If IsNumeric(SecnVarFOR(Index)) = True Then
                                            For i46 = 1 To Len(SecnVarFOR(Index))
                                                e1 = Mid(SecnVarFOR(Index), i46, 1)
                                                    If Not e1 = " " Then
                                                            If e1 = "." Then e1 = ","
                                                        e2 = e2 & e1
                                                    End If
                                            Next i46
                                                        SecnVarFOR(Index) = e2
                                        End If

                            FrstVarxFOR1(Index) = FrstVarFOR(Index): SecnVarxFOR1(Index) = SecnVarFOR(Index): ReslVarxFOR1(Index) = ReslVarFOR(Index)
                                    'aynı satırda çok işlem yapan denklemi farketmek için..
                                    If SatirTekrarlamaFor(Index, Forx1(Index)) = True Then
                                    If MathFunct(Index) = "EQU" Then SatirTekrarlamaFor(Index, Forx1(Index)) = False
                                        forSatir4 = CStr(Trim(Mid(CalcuKatariP(Index), 1461 + i21 * 110, 10)))
        'forsatir3..tekrarlayan satırdır...tabiki çoklu denklemde olur.
    If Not forSatir4 = ForluSatirSirası(Index, Forx1(Index), 1) And Not MathFunct(Index) = "EQU" And forSatir4 = forSatir3(Index, Forx1(Index)) Then
        AyniSatirTekrarlamaFor(Index, Forx1(Index)) = True
    End If
                                    End If
                                    
                        For i31 = 1 To M01TopAdt(Index)
                            M01A(Index, i31 - 1) = CStr(Trim(Mid(mString(Index, i31 - 1), 1, 20)))
                                If M01A(Index, i31 - 1) = FrstVarxFOR1(Index) Then
                                    M01Deger(Index, i31 - 1) = CStr(Trim(Mid(mString(Index, i31 - 1), 21, 20)))
                                    FrstVarFOR(Index) = M01Deger(Index, i31 - 1)
                                End If
                        Next i31
                        For i32 = 1 To M01TopAdt(Index)
                            M01A(Index, i32 - 1) = CStr(Trim(Mid(mString(Index, i32 - 1), 1, 20)))
                                If M01A(Index, i32 - 1) = SecnVarxFOR1(Index) Then
                                    M01Deger(Index, i32 - 1) = CStr(Trim(Mid(mString(Index, i32 - 1), 21, 20)))
                                    SecnVarFOR(Index) = M01Deger(Index, i32 - 1)
                                End If
                        Next i32
                
        For i33 = 1 To M01TopAdt(Index)
                            M01A(Index, i33 - 1) = CStr(Trim(Mid(mString(Index, i33 - 1), 1, 20)))
                    If M01A(Index, i33 - 1) = ReslVarxFOR1(Index) Then
                                    
                                    'LT102sw=TRUE için
                                If SecnVarFOR(Index) = "TRUE" Or SecnVarFOR(Index) = "FALSE" Then
                                    DimIsart = "BOOLEAN"
                                    GoTo 20
                                End If
                                
                                'Aşağıdaki Fonksiyonların işareti direkt "SINGLE" sayılacak
                        If MathFunct(Index) = "SIN" Or MathFunct(Index) = "COS" Or MathFunct(Index) = "TAN" Or MathFunct(Index) = "COT" Or MathFunct(Index) = "LNB" Or _
                                    MathFunct(Index) = "ABS" Or MathFunct(Index) = "LOG" Or MathFunct(Index) = "SQR" Or MathFunct(Index) = "EXP" Or MathFunct(Index) = "ING" Then
                              DimIsart = "SINGLE"
                        End If
                                
                                    'DIM burada olacak
                                    MathIslemAdt(Index) = CInt(Trim(Mid(CalcuKatariP(Index), 1541, 20)))
                                    DimDegiskSayisi = CInt(Trim(Mid(CalcuKatariP(Index), 1581 + MathIslemAdt(Index) * 110, 20)))
                                                                                Dim i41 As Integer
                                For i41 = 1 To DimDegiskSayisi
                                            DimDegisk(i41) = CStr(Trim(Mid(CalcuKatariP(Index), 1601 + MathIslemAdt(Index) * 110 + i41 * 80 - 80, 20)))
                                        If DimDegisk(i41) = FrstVarxFOR1(Index) Or DimDegisk(i41) = SecnVarxFOR1(Index) Then
                                            DimIsart = CStr(Trim(Mid(CalcuKatariP(Index), 1601 + MathIslemAdt(Index) * 110 + i41 * 80 - 60, 20)))
                                        End If
                                Next i41
20
            '''''''''Satırı STEP te göster..Program akışını görmek için
                If Not StepInd = 1000 Then katar11P = "Step": katar12P = forsat(Index): mString(Index, MathIslemAdt(Index) + StepInd - 1) = katar11P & katar12P
                        WaitSeconds (dly) 'Waitfor (dly)
                    Call CalculationBloguSatırGecisleriTextIndikasyonundaGoster(frm, ClcIndxOpn)
                    'Call CalculationBloguSatırGecisleriTextIndikasyonundaGoster(frm, Index)
                    Call CalculationBloguParametrelerininTextIndikasyonundaGoster(frm, ClcIndxOpn)
                    'Call CalculationBloguParametrelerininTextIndikasyonundaGoster(Me, Index)
    
            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Select Case MathFunct(Index) '****
            Case "EQU"
             Select Case IsNumeric(SecnVarFOR(Index))
                    Case True
                        'EQU N3 10 M01(0)
                                                                    Dim i54, i55, i15 As Integer
                        'Sabit değeri tekrar N3' e ver....
                        For i54 = 1 To M01TopAdt(Index)
                            M01A(Index, i54 - 1) = CStr(Trim(Mid(mString(Index, i54 - 1), 1, 20)))
                                If M01A(Index, i54 - 1) = FrstVarxFOR1(Index) Then
                        katar11P = FrstVarxFOR1(Index): katar12P = SecnVarFOR(Index): mString(Index, i54 - 1) = katar11P & katar12P
                                    For i15 = 1 To TagAdt
                                            If TagA(i15) = FrstVarxFOR1(Index) Then
                                                TagP(1) = FrstVarxFOR1(Index)
                                                TagDegP(1) = SecnVarFOR(Index)
                                        mString(Index, i54 - 1) = TagP(1) & TagDegP(1)
                                                Select Case RealSimMod(Index)
                                                    Case "Real" 'bu modda TagRawdeger e değer aktarılır
                                                        TagRawDeger(i15) = SecnVarFOR(Index)
                                                    Case "Simulation" 'bu modda TagRawdeger e değer aktarılmaz
                                                End Select
                                            End If
                                    Next i15
                                End If
                        Next i54
                        'Bulduğun  M01(0) değerini M01(1)' e ver....
                        For i55 = 1 To M01TopAdt(Index)
                            M01A(Index, i55 - 1) = CStr(Trim(Mid(mString(Index, i55 - 1), 1, 20)))
                                If M01A(Index, i55 - 1) = ReslVarxFOR1(Index) Then
                        katar11P = ReslVarxFOR1(Index): katar12P = SecnVarFOR(Index): mString(Index, i55 - 1) = katar11P & katar12P
                                End If
                        Next i55
                            'frm.List2.AddItem "ReslVarFOR(Index)=" & katar12P & "   " & i71

                    Case False
                        'EQU N3 M01(0) M01(1)
                                                                    Dim i51, i52, i53 As Integer
                        'Önce M01(0) değerini bul.
                        For i51 = 1 To M01TopAdt(Index)
                            M01A(Index, i51 - 1) = CStr(Trim(Mid(mString(Index, i51 - 1), 1, 20)))
                                If M01A(Index, i51 - 1) = SecnVarxFOR1(Index) Then
                                    M01Degr1 = CStr(Trim(Mid(mString(Index, i51 - 1), 21, 20)))
                                End If
                        Next i51
                        
                        'Bulduğun  M01(0) değerini N3' e ver....
                                    FrstVarFOR(Index) = M01Degr1
                        For i52 = 1 To M01TopAdt(Index)
                            M01A(Index, i52 - 1) = CStr(Trim(Mid(mString(Index, i52 - 1), 1, 20)))
                                If M01A(Index, i52 - 1) = FrstVarxFOR1(Index) Then
                        katar11P = FrstVarxFOR1(Index): katar12P = M01Degr1: mString(Index, i52 - 1) = katar11P & katar12P
                                End If
                        Next i52
                        
                        'Bulduğun  M01(0) değerini M01(1)' e ver....
                        For i53 = 1 To M01TopAdt(Index)
                            M01A(Index, i53 - 1) = CStr(Trim(Mid(mString(Index, i53 - 1), 1, 20)))
                                If M01A(Index, i53 - 1) = ReslVarxFOR1(Index) Then
                        katar11P = ReslVarxFOR1(Index): katar12P = M01Degr1: mString(Index, i53 - 1) = katar11P & katar12P
                                End If
                        Next i53
                    End Select 'select case IsNumeric(SecnVarFOR(Index)) sonu
                End Select 'MathFunct(Index) '****
                
                Select Case MathFunct(Index)
                    Case "GTO"
                            'O Satıra git.
                                                            Dim i49 As Integer
                    For i49 = 1 To MathIslemAdt(Index)
                        İslemTyp = CStr(Trim(Mid(CalcuKatariP(Index), 1521 + i49 * 110, 10)))
                        GtoDegsk = CStr(Trim(Mid(CalcuKatariP(Index), 1541 + i49 * 110, 10)))
                        GtoDegiskAd(1) = CStr(Trim(Mid(CalcuKatariP(Index), 1531 + i49 * 110, 10)))
            If İslemTyp = "GTX" And GtoDegsk = SecnVarxFOR1(Index) And GtoDegiskAd(1) = FrstVarxFOR1(Index) Then
                                    ForPrgSatAtlama = i49: ForPrgSatAtlamaSw = True
                                    i21m(Index) = ForPrgSatAtlama
                                    GoTo 600
'frm.list2.AddItem "ProgSat=" & i21 & " " & "İfSat=" & ifsat & " " & "İfInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarFOR(Index)For1 & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarFOR(Index)For1 & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index,i33 - 1) & " " & "ifResult(Index,Forx1(Index))=" & ifResult(Index,Forx1(Index)) & " " & "IfPrgSatAtlm=" & IfPrgSatAtlm & " " & "IfPrgSatAtlamaSw=" & IfPrgSatAtlamaSw
                                    End If
                                    Next i49
                End Select 'MathFunct(Index) '****
            
            Select Case MainFunct(Index)
                Case "FOR"
                    Select Case MathFunct(Index)
                        Case "NXT"
                         syxFor(Index, Forx1(Index)) = syxFor(Index, Forx1(Index)) + 1
                            'ForluProgSatirSirası(Index, Forx1(Index), 2) = i21 - 1
                         'FOR-NEXT döngüsünde 1 Stepi tamamladığında aşağıdakiler yapılır.
                    'If syxFor(Index,Forx1(Index)) = (ForBits(Index, Forx1(Index)) - 1 - ForBasl(Index, Forx1(Index))) Then 'satırları taramışsa
                                                        Dim i83, ForIndxProgx, ForProgBasl1, ForProgBits1 As Integer
                            forStepSay(Index, Forx1(Index)) = forStepSay(Index, Forx1(Index)) + Abs(forSTP1(Index, Forx1(Index)))
                    'Tüm Değişkenleri içine alacak şekilde Döngüyü FOR-NEXT kadar döndürürse..iş bitsin
                        If StepNegtFor(Index, Forx1(Index)) = True Then forTO1(Index, Forx1(Index)) = forTO1(Index, Forx1(Index))
                        If StepPoztFor(Index, Forx1(Index)) = True Then forTO1(Index, Forx1(Index)) = forTO1(Index, Forx1(Index))
                                                                            Dim i17, ForIndxMast, ForIndxSlav As Integer
                                                                            Dim MainFunct8, MainFunct9 As String
                                                                            Dim ForIndxProg8, ForIndxProg9 As Integer
                        'ana FOR yada slave FOR olduğunu sapta
                    For i17 = 1 To MathIslemAdt(Index)
                        MainFunct8 = CStr(Trim(Mid(CalcuKatariP(Index), 1481 + i17 * 110, 10)))
                        ForIndxProg8 = CInt(Trim(Mid(CalcuKatariP(Index), 1491 + i17 * 110, 10)))
                        MainFunct9 = CStr(Trim(Mid(CalcuKatariP(Index), 1501 + i17 * 110, 10)))
                        ForIndxProg9 = CInt(Trim(Mid(CalcuKatariP(Index), 1511 + i17 * 110, 10)))
                            'Ana FOR ise..
                If MainFunct8 = "FOR" And Forx1(Index) = ForIndxProg8 And MainFunct9 = "FOR" And Forx1(Index) = ForIndxProg9 Then
                                    'ForMasterSw = True
                                ForIndxMast = ForIndxProg9
                End If
                            'Slave FOR ise..ana FOR indeksi bul
                If MainFunct8 = "FOR" And Forx1(Index) = ForIndxProg8 And MainFunct9 = "FOR" And Forx1(Index) <> ForIndxProg9 Then
                                    'ForSlaveSw = True
                                ForIndxSlav = ForIndxProg8
                                ForIndxMast = ForIndxProg9
                End If
                                    'Slave FOR ise...ana IF indeksi bul
        If MainFunct8 = "FOR" And Forx1(Index) = ForIndxProg8 And MainFunct9 = "IF" Then
                                    'ForSlaveSw = True
                                ForIndxSlav = ForIndxProg8
                                ForIndxMast = ForIndxProg9
        End If
                    Next i17
                                                                            Dim stpcorrect As Integer
            stpcorrect = forSTP1(Index, Forx1(Index)) 'genelde 1'i kullan. aşağıdaki durumlarda o değeri alsın.
    'If forI1(Index,Forx1(Index)) <= "0" And forTO1(Index,Forx1(Index)) >= "0" And StepPoztFor(Index,Forx1(Index)) = True Then stpcorrect = forSTP1(Index,Forx1(Index))
    'If forTO1(Index,Forx1(Index)) = "0" And forI1(Index,Forx1(Index)) > "0" And StepPoztFor(Index,Forx1(Index)) Then stpcorrect = forSTP1(Index,Forx1(Index))
            
            'Tamamlanmayan döngüler burdan devam etsin. 1 önceki Fora dönüş yeri..i21 le yapılır.
                        If forStepSay(Index, Forx1(Index)) >= Abs((forTO1(Index, Forx1(Index)) + stpcorrect - forI1(Index, Forx1(Index)))) Then
                        'If forStepSay(Index,Forx1(Index)) >= Abs((forTO1(Index,Forx1(Index)) + Abs(forSTP1(Index,Forx1(Index))) - forI1(Index,Forx1(Index)))) Then
                            for1StepDondu(Index, Forx1(Index)) = False
                                'syxFor(Index,ForIndxMast) = syxFor(Index,ForIndxMast) + syxFor(Index,Forx1(Index)) 'Bir sonrakinin tam satır sayısı olarak al. çünkü içine alıyor.
                                syxFor(Index, ForIndxMast) = syxFor(Index, ForIndxMast) + syxFor(Index, Forx1(Index)) + 2 'Bir sonrakinin tam satır sayısı olarak al. çünkü içine alıyor.
                                syxFor(Index, Forx1(Index)) = 0
                                forStepSay(Index, Forx1(Index)) = 0
                                forilksatirSw(Forx1(Index)) = False
                                for1DonguSw(Index, Forx1(Index)) = False
                                forI1Sw(Index, Forx1(Index)) = False
                      'O andaki FOR un Ana FOR mu yoksa Slave FOR mu olduğunu kontrol et.
                      'Eğer Ana FOR ise..Programda Bitişe git.
                      'Slave FOR ise.....bir önceki Ana FOR a dönüş yap
                                                                            Dim i16 As Integer
                    For i16 = 1 To MathIslemAdt(Index)
                        MainFunct8 = CStr(Trim(Mid(CalcuKatariP(Index), 1481 + i16 * 110, 10)))
                        ForIndxProg8 = CInt(Trim(Mid(CalcuKatariP(Index), 1491 + i16 * 110, 10)))
                        MainFunct9 = CStr(Trim(Mid(CalcuKatariP(Index), 1501 + i16 * 110, 10)))
                        ForIndxProg9 = CInt(Trim(Mid(CalcuKatariP(Index), 1511 + i16 * 110, 10)))
                                    'Ana FOR ise...bitişe gönder..
        If MainFunct8 = "FOR" And Forx1(Index) = ForIndxProg8 And MainFunct9 = "FOR" And Forx1(Index) = ForIndxProg9 Then
                                
                                For i87 = 1 To ForAdet(Index)    'forsay
                                    ForIndxProgx = CInt(Trim(Mid(ForluProgSatirSira(Index), 10 + i87 * 40 - 39, 10)))
                                        If ForIndxProgx = Forx1(Index) Then
                                ForProgBits1 = CInt(Trim(Mid(ForluProgSatirSira(Index), 10 + i87 * 40 - 9, 10)))
                                        End If
                                Next i87
                                    i21m(Index) = ForProgBits1 + 1
                                    GoTo 600
                            End If
                                    'Slave FOR ise...ana FOR un son kaldığı yere gönder..
        If MainFunct8 = "FOR" And Forx1(Index) = ForIndxProg8 And MainFunct9 = "FOR" And Forx1(Index) <> ForIndxProg9 Then
                                For i88 = 1 To ForAdet(Index)   'forsay
                                    ForIndxProgx = CInt(Trim(Mid(ForluProgSatirSira(Index), 10 + i88 * 40 - 39, 10)))
                                        If ForIndxProgx = ForIndxProg8 Then
                                ForProgBits1 = CInt(Trim(Mid(ForluProgSatirSira(Index), 10 + i88 * 40 - 9, 10)))
                                        End If
                                Next i88
                                    'ana FOR un son kaldığı yere git
                                    i21m(Index) = ForProgBits1 + 1
                                    GoTo 600
                    End If
                                    'Slave FOR ise...ana IF in son kaldığı yere gönder..
        If MainFunct8 = "FOR" And Forx1(Index) = ForIndxProg8 And MainFunct9 = "IF" Then
                                For i89 = 1 To ForAdet(Index)   ' forsay
                                    ForIndxProgx = CInt(Trim(Mid(ForluProgSatirSira(Index), 10 + i89 * 40 - 39, 10)))
                                        If ForIndxProgx = ForIndxProg8 Then
                                ForProgBits1 = CInt(Trim(Mid(ForluProgSatirSira(Index), 10 + i89 * 40 - 9, 10)))
                                        End If
                                Next i89
                                    i21m(Index) = ForProgBits1 + 1
                                    GoTo 600
                    End If
                    
                    Next i16
                                    i21m(Index) = i21m(Index) + 1
                                GoTo 600
                        End If
                                    
                                    'Döngü daha bitmemişse
'Tüm Değişkenleri içine alacak şekilde ilk Döngüyü 1 kez döndürdüğünde..sonraya geçsin...I1=2 olsun.
                        If forStepSay(Index, Forx1(Index)) < Abs((forTO1(Index, Forx1(Index)) + stpcorrect - forI1(Index, Forx1(Index)))) Then
                        'If forStepSay(Index,Forx1(Index)) < Abs((forTO1(Index,Forx1(Index)) + Abs(forSTP1(Index,Forx1(Index))) - forI1(Index,Forx1(Index)))) Then
                                            for1StepDondu(Index, Forx1(Index)) = False
                                            SatirTekrarlamaFor(Index, Forx1(Index)) = False
                                            AyniSatirTekrarlamaFor(Index, Forx1(Index)) = False
                                        i21 = ForluProgSatirSirası(Index, Forx1(Index), 2) 'for döngüsünün 2. bileşenine yeniden geçsin
                                            syxFor(Index, Forx1(Index)) = 0
                                            'i71For(Forx1(Index)) = forStepSay(Index,Forx1(Index))
                                            i21m(Index) = ForluProgSatirSirası(Index, Forx1(Index), 2) 'ForProgBasl(Index)
                                        GoTo 600
                                    End If
                            'End If
                        End Select
                    End Select
                             
                                                            Dim i61, i62, i63 As Integer
            Select Case MainFunct(Index)
                Case "FOR"
            If ForluSatirSirası(Index, Forx1(Index), 1) = forsat(Index) Then 'sadece 1.satırda geçerli olsun
                    Select Case MathFunct(Index)
                    'Burası 1 kez aldıktan sonra Program buraya tekrar giremez..yani değişmez..rahat ol.
                        Case "TO": If FrstVarFOR(Index) > SecnVarFOR(Index) Then i21m(Index) = i21m(Index) + 1: GoTo 600  ' GoTo 500
                            For i61 = 1 To M01TopAdt(Index)
                                M01A(Index, i61 - 1) = CStr(Trim(Mid(mString(Index, i61 - 1), 1, 20)))
                                    If M01A(Index, i61 - 1) = SecnVarFOR(Index) Then
                                        M01Deger(Index, i61 - 1) = CStr(Trim(Mid(mString(Index, i61 - 1), 21, 20)))
                                        forTO1(Index, Forx1(Index)) = M01Deger(Index, i61 - 1)
                                            ForluProgSatirSirası(Index, Forx1(Index), 2) = i21
                                        GoTo 50
                                    End If
                                    If IsNumeric(SecnVarFOR(Index)) = True Then
                                        forTO1(Index, Forx1(Index)) = SecnVarFOR(Index)
                                            ForluProgSatirSirası(Index, Forx1(Index), 2) = i21
                                        GoTo 50
                                    End If
                            Next i61
                        Case "STP":
                            For i62 = 1 To M01TopAdt(Index)
                                M01A(Index, i62 - 1) = CStr(Trim(Mid(mString(Index, i62 - 1), 1, 20)))
                                    If M01A(Index, i62 - 1) = SecnVarxFOR1(Index) Then
                                        M01Deger(Index, i62 - 1) = CStr(Trim(Mid(mString(Index, i62 - 1), 21, 20)))
                                        forSTP1(Index, Forx1(Index)) = M01Deger(Index, i62 - 1)
                                            If forSTP1(Index, Forx1(Index)) > 0 Then StepPoztFor(Index, Forx1(Index)) = True
                                            If forSTP1(Index, Forx1(Index)) < 0 Then StepNegtFor(Index, Forx1(Index)) = True
                                        GoTo 50
                                    End If

                                    If IsNumeric(SecnVarxFOR1(Index)) = True Then
                                        forSTP1(Index, Forx1(Index)) = SecnVarFOR(Index)
                                                ForluProgSatirSirası(Index, Forx1(Index), 2) = i21
                                            If forSTP1(Index, Forx1(Index)) > 0 Then StepPoztFor(Index, Forx1(Index)) = True
                                            If forSTP1(Index, Forx1(Index)) < 0 Then StepNegtFor(Index, Forx1(Index)) = True
                                        GoTo 50
                                    End If
                                    
                            Next i62
                        Case "EQU": 'FORI1
                            For i63 = 1 To M01TopAdt(Index)
                                M01A(Index, i63 - 1) = CStr(Trim(Mid(mString(Index, i63 - 1), 1, 20)))
                                    If forI1Sw(Index, Forx1(Index)) = False Then
                                        If M01A(Index, i63 - 1) = FrstVarxFOR1(Index) Then
                                            M01Deger(Index, i63 - 1) = CStr(Trim(Mid(mString(Index, i63 - 1), 21, 20)))
                                            forI1(Index, Forx1(Index)) = M01Deger(Index, i63 - 1)
                                                forI1Sw(Index, Forx1(Index)) = True
                                        End If
                                    End If
                                    
                                    If forI1Sw(Index, Forx1(Index)) = False Then
                                        If IsNumeric(FrstVarxFOR1(Index)) = True Then
                                            forI1(Index, Forx1(Index)) = FrstVarxFOR1(Index)
                                                forI1Sw(Index, Forx1(Index)) = True
                                        End If
                                    End If
                            
                            Next i63
                    End Select 'case MathFunct(Index) sonu
                    
            End If
50
                        '3 0 FOR 1 FOR 1 ADD N1 10 M01(5)
                        'For İlk başladığında..Indeksi bulmak için yapılır.
                        If forilksatirSw(Forx1(Index)) = False Then
                            Forx1(Index) = CStr(Trim(Mid(CalcuKatariP(Index), 1491 + i21 * 110, 10)))
                            forilksatirSw(Forx1(Index)) = True
                        End If
                            forIndx2 = CStr(Trim(Mid(CalcuKatariP(Index), 1491 + i21 * 110, 10)))
                            forSatir2 = CStr(Trim(Mid(CalcuKatariP(Index), 1461 + i21 * 110, 10)))
    'Eğer Döngüde artırdığı/azaltttığı sayıyı mesela N1 Değişekenine EQU ile atıyorsa hiç aşağıya geçmesin.
                If MathFunct(Index) = "EQU" Then i21m(Index) = i21m(Index) + 1: GoTo 600 'GoTo 500
               
               '2..3..4. uncü satırlarda uzun ve bir kaç işlem yapılan Denklemi tesbit için yapılır..
                If Not forSatir2 = ForluSatirSirası(Index, Forx1(Index), 1) And SatirTekrarlamaFor(Index, Forx1(Index)) = False Then
                    forSatir3(Index, Forx1(Index)) = CStr(Trim(Mid(CalcuKatariP(Index), 1461 + i21 * 110, 10)))
                    SatirTekrarlamaFor(Index, Forx1(Index)) = True
                End If
    
                    'Eğer FOR da hala 1. satırda ise For-Next te dahil olmasın. Direkt matematik işlemleri yapsın.
                If FORluxSatir(Index, forIndx2, forSatir2) = ForluSatirSirası(Index, Forx1(Index), 1) Then GoTo 300

                    'Eğer FOR da 2. satırdan sonraki bir alt satira geçilmişse Döngüye dahil et.
If for1StepDondu(Index, Forx1(Index)) = True And forSatir2 > ForBasl(Index, Forx1(Index)) _
            And forSatir2 < ForBits(Index, Forx1(Index)) And Forx1(Index) = forIndx2 Then GoTo 300
                    
                    'Eğer FOR da 2. satıra(FOR TO dan sonraki) geçilmişse ANA DÖNGÜ yü başlat
                    If for1DonguSw(Index, Forx1(Index)) = False Then
If FORluxSatir(Index, forIndx2, forSatir2) = ForluSatirSirası(Index, Forx1(Index), 2) And Forx1(Index) = forIndx2 Then
                                                                                    Dim i81 As Integer
                            'ForluProgSatirSirası(Index, Forx1(Index), 2) = i21 - 1
                                for1StepDondu(Index, Forx1(Index)) = False
                                syxFor(Index, Forx1(Index)) = 0
                                for1DonguSw(Index, Forx1(Index)) = True 'ForI...ForTO arasında...True kalır.
                            GoTo 200
            End If
                    End If
                    
                'FOR da for1StepDondu=false ile 1 iç döngü bittiyse 2.3.4...döngülere geç.
            If for1StepDondu(Index, Forx1(Index)) = False Then GoTo 200 '400
                    
                'Eğer FOR da BİR TUR DÖNGÜ Bittiyse 2 veya Sonraki Turlara Geç
'100
200                  'For i71For(Forx1(Index)) = forI1(Index,Forx1(Index)) To forTO1(Index,Forx1(Index)) Step forSTP1(Index,Forx1(Index))
300
                                                                            Dim FrstVarFOR3
                Select Case MathFunct(Index)
                    Case "ADD":
                        Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = CInt(FrstVarFOR(Index)) + CInt(SecnVarFOR(Index))
                            Case "SINGLE": M01Deger(Index, i33 - 1) = CSng(FrstVarFOR(Index)) + CSng(SecnVarFOR(Index))
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(FrstVarFOR(Index)) + CDbl(SecnVarFOR(Index))
                            Case "LONG": M01Deger(Index, i33 - 1) = CLng(FrstVarFOR(Index)) + CLng(SecnVarFOR(Index))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(FrstVarFOR(Index)) + CStr(SecnVarFOR(Index))
                         End Select
                                FrstVarFOR3 = CSng(FrstVarFOR(Index)) + CSng(SecnVarFOR(Index))
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                    
                    Case "SUB":
                        Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = CInt(FrstVarFOR(Index)) - CInt(SecnVarFOR(Index))
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(CSng(FrstVarFOR(Index)) - CSng(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(FrstVarFOR(Index)) - CDbl(SecnVarFOR(Index))
                            Case "LONG": M01Deger(Index, i33 - 1) = CLng(FrstVarFOR(Index)) - CLng(SecnVarFOR(Index))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(FrstVarFOR(Index)) - CStr(SecnVarFOR(Index))
                         End Select
                                FrstVarFOR3 = CSng(FrstVarFOR(Index)) - CSng(SecnVarFOR(Index))
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                    
                    Case "DIV":
                                If CInt(FrstVarFOR(Index)) = 0 Or CInt(SecnVarFOR(Index)) = 0 Then GoTo 600 ' GoTo 500
                        Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = CInt(FrstVarFOR(Index)) / CInt(SecnVarFOR(Index))
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(CSng(FrstVarFOR(Index)) / CSng(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(FrstVarFOR(Index)) / CDbl(SecnVarFOR(Index))
                            Case "LONG": M01Deger(Index, i33 - 1) = CLng(FrstVarFOR(Index)) / CLng(SecnVarFOR(Index))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(FrstVarFOR(Index)) / CStr(SecnVarFOR(Index))
                         End Select
                                FrstVarFOR3 = CSng(FrstVarFOR(Index)) / CSng(SecnVarFOR(Index))
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                    
                    Case "MUL":
                        Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = CInt(FrstVarFOR(Index)) * CInt(SecnVarFOR(Index))
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(CSng(FrstVarFOR(Index)) * CSng(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(FrstVarFOR(Index)) * CDbl(SecnVarFOR(Index))
                            Case "LONG": M01Deger(Index, i33 - 1) = CLng(FrstVarFOR(Index)) * CLng(SecnVarFOR(Index))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(FrstVarFOR(Index)) * CStr(SecnVarFOR(Index))
                         End Select
                                FrstVarFOR3 = CSng(FrstVarFOR(Index)) * CSng(SecnVarFOR(Index))
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                    
                    Case "USL":
                        Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = CInt(FrstVarFOR(Index)) ^ CInt(SecnVarFOR(Index))
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(CSng(FrstVarFOR(Index)) ^ CSng(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(FrstVarFOR(Index)) ^ CDbl(SecnVarFOR(Index))
                            Case "LONG": M01Deger(Index, i33 - 1) = CLng(FrstVarFOR(Index)) ^ CLng(SecnVarFOR(Index))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(FrstVarFOR(Index)) ^ CStr(SecnVarFOR(Index))
                         End Select
                                FrstVarFOR3 = CSng(FrstVarFOR(Index)) ^ CSng(SecnVarFOR(Index))
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                    Case "SIN":
                        Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Sin(SecnVarFOR(Index) / 180 * PI)
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Sin(SecnVarFOR(Index) / 180 * PI)
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Sin(SecnVarFOR(Index) / 180 * PI))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Sin(SecnVarFOR(Index) / 180 * PI))
                    End Select
                                FrstVarFOR3 = Sin(SecnVarFOR(Index) / 180 * PI)
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                    Case "COS":
                        Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Cos(SecnVarFOR(Index) / 180 * PI)
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Cos(SecnVarFOR(Index) / 180 * PI)
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Cos(SecnVarFOR(Index) / 180 * PI))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Cos(SecnVarFOR(Index) / 180 * PI))
                    End Select
                                FrstVarFOR3 = Cos(SecnVarFOR(Index) / 180 * PI)
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "TAN":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Tan(SecnVarFOR(Index) / 180 * PI)
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Tan(SecnVarFOR(Index) / 180 * PI)
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Tan(SecnVarFOR(Index) / 180 * PI))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Tan(SecnVarFOR(Index) / 180 * PI))
                    End Select
                                FrstVarFOR3 = Tan(SecnVarFOR(Index) / 180 * PI)
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "COT":
                                If SecnVarFOR(Index) = 0 Then GoTo 600 'GoTo 500
                    Select Case DimIsart
                            Case "INTEGER":  M01Deger(Index, i33 - 1) = Cos(SecnVarFOR(Index) / 180 * PI) / Sin(SecnVarFOR(Index) / 180 * PI)
                            Case "SINGLE":  M01Deger(Index, i33 - 1) = Cos(SecnVarFOR(Index) / 180 * PI) / Sin(SecnVarFOR(Index) / 180 * PI)
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Cos(SecnVarFOR(Index) / 180 * PI) / Sin(SecnVarFOR(Index) / 180 * PI))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Cos(SecnVarFOR(Index) / 180 * PI) / Sin(SecnVarFOR(Index) / 180 * PI))
                    End Select
                                FrstVarFOR3 = Cos(SecnVarFOR(Index) / 180 * PI) / Sin(SecnVarFOR(Index) / 180 * PI)
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "ABS":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Format(Abs(SecnVarFOR(Index)), "0000.000")
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(Abs(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Abs(SecnVarFOR(Index)))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Abs(SecnVarFOR(Index)))
                    End Select
                                FrstVarFOR3 = Format(Abs(SecnVarFOR(Index)), "0000.000")
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "SQR":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Format(Sqr(SecnVarFOR(Index)), "0000.000")
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(Sqr(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Sqr(SecnVarFOR(Index)))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Sqr(SecnVarFOR(Index)))
                    End Select
                                FrstVarFOR3 = Format(Sqr(SecnVarFOR(Index)), "0000.000")
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                        Case "LOG":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Format(Log(SecnVarFOR(Index) / 180 * PI), "0000.000")
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(Log(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Log(SecnVarFOR(Index)))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Log(SecnVarFOR(Index)))
                    End Select
                                FrstVarFOR3 = Format(Log(SecnVarFOR(Index)), "0000.000")
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "ING": 'Integer
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Format(CInt(SecnVarFOR(Index)), "0000.000")
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(CInt(SecnVarFOR(Index)), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(CInt(SecnVarFOR(Index)))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(CInt(SecnVarFOR(Index)))
                    End Select
                                FrstVarFOR3 = Format(CInt(SecnVarFOR(Index)), "0000.000")
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "LNB":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Format(Log(Exp(SecnVarFOR(Index))), "0000.000")
                            Case "SINGLE": M01Deger(Index, i33 - 1) = Format(Log(Exp(SecnVarFOR(Index))), "0000.000")
                            Case "DOUBLE": M01Deger(Index, i33 - 1) = CDbl(Log(Exp(SecnVarFOR(Index))))
                            Case "STRING": M01Deger(Index, i33 - 1) = CStr(Log(Exp(SecnVarFOR(Index))))
                    End Select
                                FrstVarFOR3 = Format(Log(Exp(SecnVarFOR(Index))), "0000.000")
                            katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "SEC":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Second(Time)
                    End Select
                                FrstVarFOR3 = Second(Time)
                    katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "MIN":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Minute(Time)
                    End Select
                                FrstVarFOR3 = Minute(Time)
                    katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                Case "HOUR":
                    Select Case DimIsart
                            Case "INTEGER": M01Deger(Index, i33 - 1) = Hour(Time)
                    End Select
                                FrstVarFOR3 = Hour(Time)
                    katar11P = ReslVarxFOR1(Index): katar12P = M01Deger(Index, i33 - 1): mString(Index, i33 - 1) = katar11P & katar12P
frm.List2.AddItem "ProgSat=" & i21 & " " & "ForSat=" & forsat(Index) & " " & "ForInd=" & Forx1(Index) & " " & "MthFun=" & MathFunct(Index) & " " & "FrstVarFOR(Index)=" & FrstVarxFOR1(Index) & "=" & FrstVarFOR(Index) & " " & "SecnVarFOR(Index)=" & SecnVarxFOR1(Index) & "=" & SecnVarFOR(Index) & " " & "ReslVarFOR(Index)=" & ReslVarFOR(Index) & "=" & M01Deger(Index, i33 - 1)
                End Select ' case MathFunct(Index) sonu
                      i21m(Index) = i21m(Index) + 1
                        '1.satır hiç bir şekilde döngüye katılmasın.
                    If FORluxSatir(Index, forIndx2, forSatir2) = ForluSatirSirası(Index, Forx1(Index), 1) Then GoTo 600 'GoTo 500
                        
                        'ForI...ForTo arası saymaya izin veren switch true ise...
                        If for1DonguSw(Index, Forx1(Index)) = True Then '
                'N1=N2-(A1+A2*A3(N3-N4)) gibi çok işlem gerektiren eşitliklerde AyniSatirTekrarlamaFor(Index,Forx1(Index)) = True
                'yapılarak tek satırmış gibi işlem gördürülür.Sayfa=SyxF saydırılmaz.
        If AyniSatirTekrarlamaFor(Index, Forx1(Index)) = True Then GoTo 600 'GoTo 500
'Bir Denklemde bir işlem yapma hakkına 1 satır sayma hakkı verilmiştir. Eğer eşitlikte çok işlem(sub,add,mul,div) varsa bu saymamalıdır.atlanmalıdır. satırı temsilen 1 defa saymalıdır.
                                'syxFor(Index,Forx1(Index)) = syxFor(Index,Forx1(Index)) + 1
                            for1StepDondu(Index, Forx1(Index)) = True
                            GoTo 600
    'frm.List2.AddItem "syxFor(Index,Forx1(Index))=" & syxFor(Index,Forx1(Index)) & "   " & "Forx1(Index)=" & Forx1(Index) & "   " & "for1StepDondu(Index,Forx1(Index))=" & for1StepDondu(Index,Forx1(Index)) & "   " & "AyniSatirTekrarlamaFor(Index,Forx1(Index))=" & AyniSatirTekrarlamaFor(Index,Forx1(Index))
                        End If

'ilk Değişkeni 1 kez döndürsün. Değeri EQU ile atasın. Bir sonraki eşitliği bulsun. Onuda 1 kez döndürsün.
'sonraki Değişkenleri yine I1=1 de iken alsın.
                        'If for1StepDondu(Index,Forx1(Index)) = True Then GoTo 600 'GoTo 500
                    
                    'Eğer FOR da hala 1. satırda ise hiç aşağıya geçmesin, işlem yapma i21 e git.
            If FORluxSatir(Index, forIndx2, forSatir2) = ForluSatirSirası(Index, Forx1(Index), 1) Then GoTo 600 'GoTo 500
400
                        'Next i71For(Forx1(Index))
            End Select 'Case MainFunct(Index) sonu
'''''''''''''''''''''
        End If 'If M01A(Index,i33 - 1) sonu
            
                    Call CalculationBloguParametrelerininTextIndikasyonundaGoster(frm, ClcIndxOpn)
                    'Call CalculationBloguParametrelerininTextIndikasyonundaGoster(Me, Index)
    Next i33 'For i33 sonu
        
        End Select ' select case MainFunct(Index)
'500
                            If i21 = ForProgBitsx Then
                                ForPrgSatBits = i21: ForPrgSatBitsSw = True ' i21'in ForProgBitsx'e +1 eklememesi için
                                    i21m(Index) = ForPrgSatBits
                                    'SlvProgAdimFor(Index) = i21m(Index) + 1
                                    'Tmr100(Index) = True
                                    GoTo 600
                            End If
            Next i21
600
End Sub

Open in new window

Avatar of John Tsioumpris
John Tsioumpris
Flag of Greece image

Personally i think two things...you haven't made it clear what we are looking for and 2nd when you use  variables in your language its impossible to understand what the code does without spending some time with translation aid...
Avatar of kazim cende

ASKER

John..This is a FOR process..you know Classic type..
İf you..write a program on a Richtextbox1...not word text...VB6 not  does not recognize this code written on richtext.
to overcome this difficulty..We have to produce our own codes similar to vb6...and even to same VB6..
for example...
this codes written on Richtextbox1..
DIM N1 , N2 , N3 , N4 AS INTEGER
DIM A1,A2,A3,A4 AS INTEGER
DIM I1 , I2 , I3 , I4 AS INTEGER
DIM I5 , I6 , I7 , I8 AS INTEGER
DIM Z1 , Z2 , Z3 , Z4 AS INTEGER
DIM T1 , T2 , T3 , T4 AS INTEGER
DIM L1 , L2 , L3 , L4 AS INTEGER
DIM M1 , M2 , M3 , M4 AS INTEGER
DIM R1 , R2 , R3 , R4 AS INTEGER
DIM R5 , R6 AS INTEGER
DIM Step AS INTEGER
R1=0:R2=0:R3=0:R4=0
R5 = 0 : R6 = 0
A1 = 30 : A2 = 10 : A3 = - 300 : A4 = - 20
N1=A1+A2-A3/A4
N2=SIN(A1+A2/A3)-A4
IF ( 9 - 5 ) > 10 THEN GOTO 30
IF ( 14 - 9 ) > 2 THEN N4 = A3 * A2 / 20 - N1
IF ( 10 - 2 ) > 6 THEN
N3=N1-A1
FOR I1 = 0 TO - 3 STEP - 1
R1=R1+1
Z1=Z1+A1
IF 11 > 8 - 2 THEN
Z2 = Z2 - A3
FOR I2 = 0 TO - 3 STEP - 1
R2 = R2 + 1
IF ( 5 - 1 ) > 2 THEN
Z3 = Z3 + A1
ELSE
Z4 = Z4 - A2
END IF
T1 = T1 - A2
NEXT I2
T2 = T2 - A2
END IF
T3 =T3 + A2
NEXT I1
T4=T4-A3
END IF
30
FOR I3 = ( N3 - N1 ) TO ( A2 - A1 ) STEP 2
R3 = R3 + 1
L1 = L1 + 15
IF 4 = 4 THEN
L2 = L2 + 25
FOR I4 = ( A1 - N1 ) TO ( 8 ) STEP 1
R4=R4+1
L3 = L3 + 35
FOR I5 = ( A1 - N1 ) TO ( 8 ) STEP 1
R5 = R5 + 1
L4 = L4 + 45
FOR I6 = ( 30 - A1 ) TO ( N1 - A2 - 11 - 2 )
R6 = R6 + 1
IF A1=(N1-N2) THEN
M1 = M1 + A1
ELSE
M2 = M2 - A1
END IF
NEXT I6
NEXT I5
NEXT I4
ELSE
M3 = M2 + A1
END IF
NEXT I3
M4=SQR(A1-A3)-A4
END
now..this is the question...How start and working this simple SUB?
you may say..open a project..add code a form1 page..and than  start RUN..but this is not my goal..my goal is to run the codes I wrote in a RichText. how will i do it?..how I know the codes and I will say this for or if statement.?
You want to 'macro enable' your VB6 application?  You want to allow your user to write code in a rich text box and then execute it?
ASKER CERTIFIED SOLUTION
Avatar of aikimark
aikimark
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I can explain why I need to use code in Richtextbox1. .You know that when vb6 goes to runtime, it closes the code page and does not allow new attachments.. However, we must be able to write code at runtime and control our process. here is the advanced features RichText allows this situation and introduce the codes we have written vb6 .. If you can read IF or FOR code written on richtext when vb6 at runtime then it will read our codes and processing answering accordingly.
Writing programs from outside and controlling the process is a method used in Calculation Blocks.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I use this type DIM state, vb6 classical application.  but now learned other functionality.
Dim i11 as integer , i12 As Integer , is very useful
To prevent errors from using integer , I prevent decimal fault, by referring to the equality like i11 = Cint (5),  i12 = Cint (5/2) both of them, result 5 and 2 Integers.
solutions and warnings issued