Code : Tout sélectionner
;
; ------------------------------------------------------------
;
; Extracteur pour max. 100 critères - V 1.0
;
; (c) 2016 - Georges (12/05/2016)
;
; ------------------------------------------------------------
;
Dim GG$(100)
Dim CPT(100)
Dim XA(100)
Dim YA(100)
Dim XB(100)
Dim YB(100)
XA(1)=10 : YA(1)=175 : XB(1)=80 : YB(1)=175
XA(2)=10 : YA(2)=200 : XB(2)=80 : YB(2)=200
XA(3)=10 : YA(3)=225 : XB(3)=80 : YB(3)=225
XA(4)=10 : YA(4)=250 : XB(4)=80 : YB(4)=250
XA(5)=10 : YA(5)=275 : XB(5)=80 : YB(5)=275
XA(6)=10 : YA(6)=300 : XB(6)=80 : YB(6)=300
XA(7)=10 : YA(7)=325 : XB(7)=80 : YB(7)=325
XA(8)=10 : YA(8)=350 : XB(8)=80 : YB(8)=350
XA(9)=10 : YA(9)=375 : XB(9)=80 : YB(9)=375
XA(10)=10 : YA(10)=400 : XB(10)=80 : YB(10)=400
XA(11)=10 : YA(11)=425 : XB(11)=80 : YB(11)=425
XA(12)=10 : YA(12)=450 : XB(12)=80 : YB(12)=450
XA(13)=10 : YA(13)=475 : XB(13)=80 : YB(13)=475
XA(14)=10 : YA(14)=500 : XB(14)=80 : YB(14)=500
XA(15)=10 : YA(15)=525 : XB(15)=80 : YB(15)=525
XA(16)=10 : YA(16)=550 : XB(16)=80 : YB(16)=550
XA(17)=10 : YA(17)=575 : XB(17)=80 : YB(17)=575
XA(18)=10 : YA(18)=600 : XB(18)=80 : YB(18)=600
XA(19)=10 : YA(19)=625 : XB(19)=80 : YB(19)=625
XA(20)=10 : YA(20)=650 : XB(20)=80 : YB(20)=650
XA(21)=144 : YA(21)=175 : XB(21)=214 : YB(21)=175
XA(22)=144 : YA(22)=200 : XB(22)=214 : YB(22)=200
XA(23)=144 : YA(23)=225 : XB(23)=214 : YB(23)=225
XA(24)=144 : YA(24)=250 : XB(24)=214 : YB(24)=250
XA(25)=144 : YA(25)=275 : XB(25)=214 : YB(25)=275
XA(26)=144 : YA(26)=300 : XB(26)=214 : YB(26)=300
XA(27)=144 : YA(27)=325 : XB(27)=214 : YB(27)=325
XA(28)=144 : YA(28)=350 : XB(28)=214 : YB(28)=350
XA(29)=144 : YA(29)=375 : XB(29)=214 : YB(29)=375
XA(30)=144 : YA(30)=400 : XB(30)=214 : YB(30)=400
XA(31)=144 : YA(31)=425 : XB(31)=214 : YB(31)=425
XA(32)=144 : YA(32)=450 : XB(32)=214 : YB(32)=450
XA(33)=144 : YA(33)=475 : XB(33)=214 : YB(33)=475
XA(34)=144 : YA(34)=500 : XB(34)=214 : YB(34)=500
XA(35)=144 : YA(35)=525 : XB(35)=214 : YB(35)=525
XA(36)=144 : YA(36)=550 : XB(36)=214 : YB(36)=550
XA(37)=144 : YA(37)=575 : XB(37)=214 : YB(37)=575
XA(38)=144 : YA(38)=600 : XB(38)=214 : YB(38)=600
XA(39)=144 : YA(39)=625 : XB(39)=214 : YB(39)=625
XA(40)=144 : YA(40)=650 : XB(40)=214 : YB(40)=650
XA(41)=278 : YA(41)=175 : XB(41)=348 : YB(41)=175
XA(42)=278 : YA(42)=200 : XB(42)=348 : YB(42)=200
XA(43)=278 : YA(43)=225 : XB(43)=348 : YB(43)=225
XA(44)=278 : YA(44)=250 : XB(44)=348 : YB(44)=250
XA(45)=278 : YA(45)=275 : XB(45)=348 : YB(45)=275
XA(46)=278 : YA(46)=300 : XB(46)=348 : YB(46)=300
XA(47)=278 : YA(47)=325 : XB(47)=348 : YB(47)=325
XA(48)=278 : YA(48)=350 : XB(48)=348 : YB(48)=350
XA(49)=278 : YA(49)=375 : XB(49)=348 : YB(49)=375
XA(50)=278 : YA(50)=400 : XB(50)=348 : YB(50)=400
XA(51)=278 : YA(51)=425 : XB(51)=348 : YB(51)=425
XA(52)=278 : YA(52)=450 : XB(52)=348 : YB(52)=450
XA(53)=278 : YA(53)=475 : XB(53)=348 : YB(53)=475
XA(54)=278 : YA(54)=500 : XB(54)=348 : YB(54)=500
XA(55)=278 : YA(55)=525 : XB(55)=348 : YB(55)=525
XA(56)=278 : YA(56)=550 : XB(56)=348 : YB(56)=550
XA(57)=278 : YA(57)=575 : XB(57)=348 : YB(57)=575
XA(58)=278 : YA(58)=600 : XB(58)=348 : YB(58)=600
XA(59)=278 : YA(59)=625 : XB(59)=348 : YB(59)=625
XA(60)=278 : YA(60)=650 : XB(60)=348 : YB(60)=650
XA(61)=412 : YA(61)=175 : XB(61)=482 : YB(61)=175
XA(62)=412 : YA(62)=200 : XB(62)=482 : YB(62)=200
XA(63)=412 : YA(63)=225 : XB(63)=482 : YB(63)=225
XA(64)=412 : YA(64)=250 : XB(64)=482 : YB(64)=250
XA(65)=412 : YA(65)=275 : XB(65)=482 : YB(65)=275
XA(66)=412 : YA(66)=300 : XB(66)=482 : YB(66)=300
XA(67)=412 : YA(67)=325 : XB(67)=482 : YB(67)=325
XA(68)=412 : YA(68)=350 : XB(68)=482 : YB(68)=350
XA(69)=412 : YA(69)=375 : XB(69)=482 : YB(69)=375
XA(70)=412 : YA(70)=400 : XB(70)=482 : YB(70)=400
XA(71)=412 : YA(71)=425 : XB(71)=482 : YB(71)=425
XA(72)=412 : YA(72)=450 : XB(72)=482 : YB(72)=450
XA(73)=412 : YA(73)=475 : XB(73)=482 : YB(73)=475
XA(74)=412 : YA(74)=500 : XB(74)=482 : YB(74)=500
XA(75)=412 : YA(75)=525 : XB(75)=482 : YB(75)=525
XA(76)=412 : YA(76)=550 : XB(76)=482 : YB(76)=550
XA(77)=412 : YA(77)=575 : XB(77)=482 : YB(77)=575
XA(78)=412 : YA(78)=600 : XB(78)=482 : YB(78)=600
XA(79)=412 : YA(79)=625 : XB(79)=482 : YB(79)=625
XA(80)=412 : YA(80)=650 : XB(80)=482 : YB(80)=650
XA(81)=546 : YA(81)=175 : XB(81)=616 : YB(81)=175
XA(82)=546 : YA(82)=200 : XB(82)=616 : YB(82)=200
XA(83)=546 : YA(83)=225 : XB(83)=616 : YB(83)=225
XA(84)=546 : YA(84)=250 : XB(84)=616 : YB(84)=250
XA(85)=546 : YA(85)=275 : XB(85)=616 : YB(85)=275
XA(86)=546 : YA(86)=300 : XB(86)=616 : YB(86)=300
XA(87)=546 : YA(87)=325 : XB(87)=616 : YB(87)=325
XA(88)=546 : YA(88)=350 : XB(88)=616 : YB(88)=350
XA(89)=546 : YA(89)=375 : XB(89)=616 : YB(89)=375
XA(90)=546 : YA(90)=400 : XB(90)=616 : YB(90)=400
XA(91)=546 : YA(91)=425 : XB(91)=616 : YB(91)=425
XA(92)=546 : YA(92)=450 : XB(92)=616 : YB(92)=450
XA(93)=546 : YA(93)=475 : XB(93)=616 : YB(93)=475
XA(94)=546 : YA(94)=500 : XB(94)=616 : YB(94)=500
XA(95)=546 : YA(95)=525 : XB(95)=616 : YB(95)=525
XA(96)=546 : YA(96)=550 : XB(96)=616 : YB(96)=550
XA(97)=546 : YA(97)=575 : XB(97)=616 : YB(97)=575
XA(98)=546 : YA(98)=600 : XB(98)=616 : YB(98)=600
XA(99)=546 : YA(99)=625 : XB(99)=616 : YB(99)=625
XA(100)=546 : YA(100)=650 : XB(100)=616 : YB(100)=650
If ReadFile(0, "D:\QB64\LIFICH02.TXT")
;VERIFICATION SI FICHIER EXISTE
Goto PROCED01
Else
MessageRequester("Erreur à la lecture.","Le fichier : D:\QB64\LIFICH02.TXT n'existe pas",0)
Goto FIN01
EndIf
PROCED01:
LR = 0
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
LIGNE1$ = Trim(ReadString(0))
;MessageRequester("Attention", "Ligne en cours : "+LIGNE1$, 0)
LR = LR + 1
GG$(LR) = LIGNE1$
Wend
CloseFile(0) ; Ferme le fichier précédemment ouvert
; ***** LE FICHIER LIFICH02 CONTIENT LES CRITERES DE RECHERCHE **************
If ReadFile(0, "D:\QB64\LIFICH01.TXT")
;VERIFICATION SI FICHIER EXISTE
Goto PROCED02
Else
MessageRequester("Erreur à la lecture.","Le fichier : D:\QB64\LIFICH01.TXT n'existe pas",0)
Goto FIN01
EndIf
PROCED02:
S = 0
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
LIGNE2$ = Trim(ReadString(0))
;MessageRequester("Attention", "Ligne en cours : "+LIGNE2$, 0)
S =S + 1
Wend
CloseFile(0) ; Ferme le fichier précédemment ouvert
; ***** LE FICHIER LIFICH01 CONTIENT LES NOMS DES FICHIERS A CONSULTER **************
; Chargement des images.
;
LoadImage(0, "cigle2.bmp")
OpenWindow(0, 100, 200, 700, 750, "Extracteur pour max. 100 critères V1.0", #PB_Window_ScreenCentered )
ImageGadget(0, 555, 20, 0, 0, ImageID(0))
ProgressBarGadget(203, 20, 710, 660, 20, Y, S)
TextGadget(206, 20,70,250,20,"Lignes supprimées : ")
For P = 1 To LR
TextGadget(P, XA(P), YA(P), 60, 20, GG$(P),#PB_Text_Border)
Next P
For NS=1 To LR
TextGadget(NS+100, XB(NS), YB(NS), 50, 20, CPT$,#PB_Text_Border)
Next NS
TextGadget(204, 20, 20, 200, 20, "Fichier : "+Y+" / "+S)
TextGadget(205, 20, 45, 200, 20, "Taille du fichier : "+TTF01+" octets")
ProgressBarGadget(203, 20, 710, 660, 20, Y, S)
If ReadFile(0, "D:\QB64\LIFICH01.TXT")
;VERIFICATION SI FICHIER EXISTE
Goto PROCED03
Else
MessageRequester("Erreur à la lecture.","Le fichier : D:\QB64\LIFICH01.TXT n'existe pas",0)
Goto FIN01
EndIf
PROCED03:
CT = 0
Y = 0
TTF01 = 0
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
A$ = Trim(ReadString(0))
;MessageRequester("Attention", "Ligne en cours : "+A$, 0)
H$ = "F:\8DSN\" + A$
Y = Y + 1
If ReadFile(1, H$)
;VERIFICATION SI FICHIER EXISTE
TTF01 = Lof(1)
TTF02 = TTF02 + TTF01
SetGadgetState(203, Y)
JJD.f=(Y)/S
JJD=JJD*100
TextGadget(207, 340,690,150,20," "+JJD+" %")
SetGadgetText(204, "Fichier : "+Y+" / "+S)
SetGadgetText(205, "Taille du fichier : "+TTF01+" octets")
;Delay(100)
Goto PROCED04
Else
MessageRequester("Erreur à la lecture.","Le fichier : "+H$+" n'existe pas",0)
Goto FIN01
EndIf
PROCED04:
JV = 0
If OpenFile(2, "F:\1\TEMPO33.TXV")
; Ligne vide
Goto PROCED05
Else
MessageRequester("Erreur", "Le fichier TEMPO33 ne peut etre créé", 0)
Goto FIN01
EndIf
PROCED05:
Z = 0
SA = 0
While Eof(1) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
B$ = Trim(ReadString(1))
;MessageRequester("PureBasic", "Ligne en cours : "+A$, 0)
SA = SA + 1
If Len(B$) < 1
Goto PAS02
Else
EndIf
STE03:
B$ = UCase(B$)
PAS44:
For LT = 1 To LR
Position = FindString(B$, GG$(LT))
If Position > 0
HT = 1
Z = Z + 1
X = X + 1
FL$ = GG$(LT)
CPT(LT) = CPT(LT) + 1
CPT$ = Str(CPT(LT))
CPTT = CPTT+1
SetGadgetText(LT+100, CPT$)
;SetGadgetColor(LT+100, #PB_Gadget_BackColor, $0000FF)
;Delay(100)
;TextGadget(LT+100, XB(LT), YB(LT), 50, 20, CPT$,#PB_Text_Border ,#PB_Text_Right)
Goto PAS57
Else
EndIf
Next LT
PAS57:
HT = 0
PAS60:
QR$ = "F:\MEENS\BILANF09\" + FL$ + ".TRA"
If Z > 0
If OpenFile(3, QR$)
FileSeek(3, Lof(3)) ; Place le pointeur à la fin du fichier en utilisant le résultat de Lof()
; Ligne vide
Else
MessageRequester("Erreur fichier 3", "Le fichier ne peut etre créé", 0)
Goto Fin01
EndIf
Else
EndIf
If Z > 0
WriteStringN(3, B$)
CloseFile(3)
Else
EndIf
If Z = 0
WriteStringN(2, B$)
Else
EndIf
PAS02:
Z = 0
Wend
PAS58:
CloseFile(1)
CloseFile(2)
DeleteFile(H$)
RenameFile("F:\1\TEMPO33.TXV", H$)
;YT$ = "F:\1\TEMPO33.TXV"
;DeleteFile(YT$)
PAS01:
SetGadgetText(206,"Lignes supprimées : "+CPTT)
;Delay(100)
Wend
CloseFile(0)
PAS56:
PAS55:
Goto PAS7
PAS5:
;Input()
FIN01:
End
PAS7:
MessageRequester("Fin du programme", "Tout s'est exécuté sans problème.", 0)
End