kazim cende
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
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...
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?
İ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?
ASKER
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
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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.
ASKER
Writing programs from outside and controlling the process is a method used in Calculation Blocks.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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.
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