Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Visionneuse pour PLM | |
|
+3Minibug Jean Claude Yannick 7 participants | Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Visionneuse pour PLM Lun 7 Sep 2015 - 17:32 | |
| la voilà ! elle est là ! - Code:
-
hide 0 Variables_adresses() Variables_objets() Variables_projet() Labels() Init() Gui() show 0 end
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DECLARATION DES VARIABLES ADRESSES ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB Variables_adresses()
dim Path1$ Path1$ = dir_current$ if right$(Path1$,1)="" : Path1$ = left$(Path1$,len(Path1$)-1) : end_if Path1$ = Path1$+"" dim Path2$ Path2$ ="." dim Param$ Param$ = "C:\Temp\Param.inf" dim kgf$ dim url1$ : url1$="http://panoramiclemag.magix.net/public/Telechargements2/Articles.DAT" dim url2$ : url2$="http://panoramiclemag.magix.net/public/Telechargements2/Articles.IX" dim url3$ : url3$="http://panoramiclemag.magix.net/public/Telechargements2/Auteurs.DAT" dim url4$ : url4$="http://panoramiclemag.magix.net/public/Telechargements2/Auteurs.IX" dim url5$ : url5$="http://panoramiclemag.magix.net/public/Telechargements2/Mags.DAT" dim url6$ : url6$="http://panoramiclemag.magix.net/public/Telechargements2/Mags.IX" dim url7$ : url7$="http://panoramiclemag.magix.net/public/Telechargements2/Rubriques.DAT" dim url8$ : url8$="http://panoramiclemag.magix.net/public/Telechargements2/Rubriques.IX"
dim fic1$ : fic1$=Path1$+"Articles.DAT" dim fic2$ : fic2$=Path1$+"Articles.IX" dim fic3$ : fic3$=Path1$+"Auteurs.DAT" dim fic4$ : fic4$=Path1$+"Auteurs.IX" dim fic5$ : fic5$=Path1$+"Mags.DAT" dim fic6$ : fic6$=Path1$+"Mags.IX" dim fic7$ : fic7$=Path1$+"Rubriques.DAT" dim fic8$ : fic8$=Path1$+"Rubriques.IX" dim htm_file$ : htm_file$ = "C:\Temp\plm_reader.htm" END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DECLARATION DES VARIABLES OBJETS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB Variables_objets() dim_local i%
dim no% dim frame0% : no%=no%+1 : frame0% = no% dim frame1% : no%=no%+1 : frame1% = no% dim frame2% : no%=no%+1 : frame2% = no% dim Alph%(5): for i%=1 to 5 : no%=no%+1 : Alph%(i%) = no% : next i% dim SearchType% : no%=no%+1 : SearchType% = no% dim ListeType% : no%=no%+1 : ListeType% = no% dim ListeArt% : no%=no%+1 : ListeArt% = no% dim Web% dim FR_open% : no%=no%+1 : FR_open% = no% dim FW_open% : no%=no%+1 : FW_open% = no% dim Opendial% : no%=no%+1 : Opendial% = no% dim ListeUrl% : no%=no%+1 : listeUrl% = no% END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DECLARATION DES VARIABLES PROJET ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB Variables_projet()
' événements dim nclic% dim nchange% dim ndclic%
' bases de données dim ISAM_vers$ dim Art_support$ dim Mag_support$ dim Rub_support$ dim Aut_support$
dim Art_ISAM_id% dim Mag_ISAM_id% dim Rub_ISAM_id% dim Aut_ISAM_id%
dim Art_ISAM_is% dim Mag_ISAM_is% dim Rub_ISAM_is% dim Aut_ISAM_is%
dim Art_ISAM_nam$ dim Mag_ISAM_nam$ dim Rub_ISAM_nam$ dim Aut_ISAM_nam$
dim Art_ISAM_exist% dim Mag_ISAM_exist% dim Rub_ISAM_exist% dim Aut_ISAM_exist%
dim Art_ISAM_reclen% dim Mag_ISAM_reclen% dim Rub_ISAM_reclen% dim Aut_ISAM_reclen%
dim Art_ISAM_rec$ dim Mag_ISAM_rec$ dim Rub_ISAM_rec$ dim Aut_ISAM_rec$
dim Art_ISAM_nbrec% dim Mag_ISAM_nbrec% dim Rub_ISAM_nbrec% dim Aut_ISAM_nbrec% dim Art_inbase% dim Mag_inbase% dim Rub_inbase% dim Aut_inbase% ' cle selectionnée dim cle% ' url$ pour visionneuse dim SelectedArt$ END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DECLARATION DES LABELS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB Labels() Label Clic Label Change Label DClic Label Close END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' INITIALISATIONS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB Init() dim_local res%,vers$,fic$,url$ ' verif de l' existence du dossier temp if dir_exists("C:\Temp")=0 : dir_make "C:\Temp" : end_if
' définition de l' emplacement de kgf if file_exists(Param$)=1 file_open_read FR_open%,Param$ file_readln FR_open%,kgf$ file_close FR_open% else SearchKGF() end_if
' activation de kgf dll_on kgf$ ' vérification de la version de kgf vers$= string$(25," ") res% = DLL_call1("KGFdllVersion",adr(vers$)) vers$= trim$(vers$) if res%<503 message "Vous utilisez une version antérieur à la version :"+chr$(13)+"Veuillez mettre KGF.dll à jour avant de relancer l' application." dll_off Terminate end_if ' téléchargement des fichiers de base de données res% = DLL_call2("DownloadFile",adr(url1$),adr(fic1$)) res% = DLL_call2("DownloadFile",adr(url2$),adr(fic2$)) res% = DLL_call2("DownloadFile",adr(url3$),adr(fic3$)) res% = DLL_call2("DownloadFile",adr(url4$),adr(fic4$)) res% = DLL_call2("DownloadFile",adr(url5$),adr(fic5$)) res% = DLL_call2("DownloadFile",adr(url6$),adr(fic6$)) res% = DLL_call2("DownloadFile",adr(url7$),adr(fic7$)) res% = DLL_call2("DownloadFile",adr(url8$),adr(fic8$)) ' Initialisation de l' environnement res% = dll_call0("InitIsam")
' Création des identifiants ISAM ' articles Art_ISAM_is% = dll_call0("GetIsamIdentifierSize") Art_support$ = string$(Art_ISAM_is%," ") Art_ISAM_id% = dll_call1("CreateIsamIdentifier",adr(Art_support$)) ' mags Mag_ISAM_is% = dll_call0("GetIsamIdentifierSize") Mag_support$ = string$(Mag_ISAM_is%," ") Mag_ISAM_id% = dll_call1("CreateIsamIdentifier",adr(Mag_support$)) ' rubriques Rub_ISAM_is% = dll_call0("GetIsamIdentifierSize") Rub_support$ = string$(Rub_ISAM_is%," ") Rub_ISAM_id% = dll_call1("CreateIsamIdentifier",adr(Rub_support$)) ' auteurs Aut_ISAM_is% = dll_call0("GetIsamIdentifierSize") Aut_support$ = string$(Aut_ISAM_is%," ") Aut_ISAM_id% = dll_call1("CreateIsamIdentifier",adr(Aut_support$)) ' Vérification de l' existence des bases ISAM ' articles Art_ISAM_nam$ =Path2$+"Articles" Art_ISAM_exist% = dll_call1("IsamFileExists",adr(Art_ISAM_nam$)) ' mags Mag_ISAM_nam$ =Path2$+"Mags" Mag_ISAM_exist% = dll_call1("IsamFileExists",adr(Mag_ISAM_nam$)) ' rubriques Rub_ISAM_nam$ =Path2$+"Rubriques" Rub_ISAM_exist% = dll_call1("IsamFileExists",adr(Rub_ISAM_nam$)) ' auteurs Aut_ISAM_nam$ =Path2$+"Auteurs" Aut_ISAM_exist% = dll_call1("IsamFileExists",adr(Aut_ISAM_nam$)) ' Ouverture des bases ' articles if Art_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Art_ISAM_id%,adr(Art_ISAM_nam$)) end_if ' mags if Mag_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Mag_ISAM_id%,adr(Mag_ISAM_nam$)) end_if ' rubriques if Rub_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Rub_ISAM_id%,adr(Rub_ISAM_nam$)) end_if ' auteurs if Aut_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Aut_ISAM_id%,adr(Aut_ISAM_nam$)) end_if ' Récupération de la longueur des enregistrements ' articles Art_ISAM_reclen% = dll_call1("GetIsamRecordLength",Art_ISAM_id%) Art_ISAM_rec$ = string$(Art_ISAM_reclen%," ") ' mags Mag_ISAM_reclen% = dll_call1("GetIsamRecordLength",Mag_ISAM_id%) Mag_ISAM_rec$ = string$(Mag_ISAM_reclen%," ") ' rubriques Rub_ISAM_reclen% = dll_call1("GetIsamRecordLength",Rub_ISAM_id%) Rub_ISAM_rec$ = string$(Rub_ISAM_reclen%," ") ' auteurs Aut_ISAM_reclen% = dll_call1("GetIsamRecordLength",Aut_ISAM_id%) Aut_ISAM_rec$ = string$(Aut_ISAM_reclen%," ")
' Récupération du nombre d' enregistrements dans chaque base ' articles Art_inbase% = dll_call1("GetIsamRecordCount",Art_ISAM_id%) ' mags Mag_inbase% = dll_call1("GetIsamRecordCount",Mag_ISAM_id%) ' rubriques Rub_inbase% = dll_call1("GetIsamRecordCount",Rub_ISAM_id%) ' auteurs Aut_inbase% = dll_call1("GetIsamRecordCount",Aut_ISAM_id%) END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' INTERFACE UTILISATEUR ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB Gui() dim_local h%,w%,res%,u$
height 0,650 width 0,1000 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 on_close 0,Close caption 0,"PLM Reader - Vs 2.0" font_name 0,"Arial" font_size 0,8 Panel frame0% full_space frame0% h% = height(frame0%) w% = width(frame0%) hide frame0% Panel frame1% height frame1%,h% width frame1%,300 Alpha Alph%(1) parent Alph%(1),frame1% top Alph%(1),10 left Alph%(1),10 caption Alph%(1),"Type de recherche" font_bold Alph%(1) Combo SearchType% parent SearchType%,frame1% width SearchType%,280 top SearchType%,30 left SearchType%,10 RempSearchType() on_click SearchType%,clic List ListeType% parent ListeType%,frame1% width ListeType%,280 height ListeType%,200 top ListeType%,55 left ListeType%,10 on_double_click ListeType%,dclic cursor_point ListeType% Alpha Alph%(2) parent Alph%(2),frame1% top Alph%(2),270 left Alph%(2),10 caption Alph%(2),"Liste des articles" font_bold Alph%(2) List ListeArt% parent ListeArt%,frame1% width ListeArt%,280 height ListeArt%,310 top ListeArt%,290 left ListeArt%,10 on_double_click ListeArt%,dclic cursor_point ListeArt% Panel frame2% height frame2%,h% width frame2%,w%-width(frame1%) left frame2%,width(frame1%) Web% = dll_call1("WB_Create",handle(frame2%)) res% = dll_call5("WB_Locate",WeB%,0,0,width(frame2%),height(frame2%)) CreatePageHtml(0)
Dlist ListeUrl% END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' MENUS EVENEMENTS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Clic: nclic% = number_click if nclic% = SearchType% : SelectKeySearch(item_index(SearchType%)) :return : end_if return
Change: return
DClic: ndclic% = number_double_click if ndclic% = ListeType% : AffichListeArt(item_index(ListeType%)) : return : end_if if ndclic% = ListeArt% : CreatePageHtml(item_index(ListeArt%)) : return : end_if return
Close: Quitter() return ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' FONCTIONS APPLICATION ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB RempSearchType() item_add SearchType%,"N° d' article" item_add SearchType%,"N° de Magazine" item_add SearchType%,"Rubrique" item_add SearchType%,"Auteur" END_SUB
SUB SearchKGF() dim_local a$ a$="PLM Reader nécessite KGF.dll !"+chr$(13) a$=a$+"Indiquer le chemin de KGF.dll maintenant ?" if Message_warning_yes_no(a$)=1 Open_dialog Opendial% dir_dialog Opendial%,"C:" filter Opendial%,"*.dll|*.dll" a$=file_name$(Opendial%) delete Opendial% if a$<>"_" file_open_write FW_open%,Param$ file_writeln FW_open%,a$ file_close FW_open% kgf$ = a$ else Terminate end_if else terminate end_if END_SUB
SUB Quitter() dim_local fin% fin% = dll_call1("CloseIsamFile",Art_Isam_ID%) fin% = dll_call1("CloseIsamFile",Mag_Isam_ID%) fin% = dll_call1("CloseIsamFile",Rub_Isam_ID%) fin% = dll_call1("CloseIsamFile",Aut_Isam_ID%) File_delete Path1$+"Articles.DAT" File_delete Path1$+"Articles.IX" File_delete Path1$+"Mags.DAT" File_delete Path1$+"Mags.IX" File_delete Path1$+"Auteurs.DAT" File_delete Path1$+"Auteurs.IX" File_delete Path1$+"Rubriques.DAT" File_delete Path1$+"Rubriques.IX" END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' FONCTIONS BASE DE DONNEES ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB SelectKeySearch(N%) dim_local i%,res%,fill$,v$,key$ cle%=N% Clear ListeType% select cle% case 1 for i%=1 to Art_inbase% key$ = "ART"+right$(string$(4,"0")+str$(i%),4) item_add ListeType%,key$ next i% case 2 for i%=1 to Mag_inbase% key$ = right$(string$(4,"0")+str$(i%),4) Mag_ISAM_NbRec% = dll_call4("ReadIsamRecordByKey",Mag_Isam_ID%,adr(Mag_ISAM_rec$),1,adr(key$)) res% = dll_call0("GetIsamOk") if res%=0 v$=string$(4," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Mag_Isam_ID%,1,adr(Mag_ISAM_rec$),adr(v$),adr(fill$)) v$=string$(30," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Mag_Isam_ID%,2,adr(Mag_ISAM_rec$),adr(v$),adr(fill$)) item_add ListeType%,v$ end_if next i% case 3 for i%=1 to Rub_inbase% res% = dll_call1("IsamFileIsOpen",Rub_Isam_ID%) if res%<0 message "Le fichier ISAM est fermé !" exit_sub end_if key$ = right$(string$(4,"0")+str$(i%),4) Rub_ISAM_NbRec% = dll_call4("ReadIsamRecordByKey",Rub_Isam_ID%,adr(Rub_ISAM_rec$),1,adr(key$)) res% = dll_call0("GetIsamOk") if res%=0 v$=string$(4," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Rub_Isam_ID%,1,adr(Rub_ISAM_rec$),adr(v$),adr(fill$)) v$=string$(30," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Rub_Isam_ID%,2,adr(Rub_ISAM_rec$),adr(v$),adr(fill$)) item_add ListeType%,v$ end_if next i% case 4 for i%=1 to Aut_inbase% res% = dll_call1("IsamFileIsOpen",Aut_Isam_ID%) if res%<0 message "Le fichier ISAM est fermé !" exit_sub end_if key$ = right$(string$(4,"0")+str$(i%),4) Aut_ISAM_NbRec% = dll_call4("ReadIsamRecordByKey",Aut_Isam_ID%,adr(Aut_ISAM_rec$),1,adr(key$)) res% = dll_call0("GetIsamOk") if res%=0 v$=string$(4," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Aut_Isam_ID%,1,adr(Aut_ISAM_rec$),adr(v$),adr(fill$)) v$=string$(30," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Aut_Isam_ID%,2,adr(Aut_ISAM_rec$),adr(v$),adr(fill$)) item_add ListeType%,v$ end_if next i% end_select END_SUB
SUB AffichListeArt(item%) dim_local i%,res%,fill$,v1$,v2$,v3$,v4$,v5$,key$,a$ Clear ListeArt% Clear ListeUrl% if cle%=1 key$ = "ART"+right$(string$(4,"0")+str$(item%),4) Art_ISAM_rec$ = string$(Art_ISAM_reclen%," ") Art_ISAM_NbRec% = dll_call4("ReadIsamRecordByKey",Art_Isam_ID%,adr(Art_ISAM_rec$),1,adr(key$)) res% = dll_call0("GetIsamOk") if res%=0 WriteARTinListe() end_if else key$ = right$(string$(4,"0")+str$(item%),4) Art_ISAM_rec$ = string$(Art_ISAM_reclen%," ") Art_ISAM_NbRec% = dll_call4("ReadIsamRecordByKey",Art_Isam_ID%,adr(Art_ISAM_rec$),cle%,adr(key$)) res% = dll_call0("GetIsamOk") if res%=0 WriteARTinListe() end_if while Art_ISAM_NbRec% >0 Art_ISAM_rec$ = string$(Art_ISAM_reclen%," ") res% = dll_call4("CreateIsamKey",Art_Isam_ID%,adr(Art_ISAM_rec$),cle%,adr(key$)) Art_ISAM_NbRec% = dll_call4("ReadNextIsamRecord",Art_Isam_ID%,adr(Art_ISAM_rec$),cle%,adr(key$)) if Art_ISAM_NbRec% >0 if val(key$)=item% WriteARTinListe() end_if end_if end_while end_if END_SUB
SUB WriteARTinListe() dim_local res%,fill$,v1$,v2$,v3$,v4$,v5$,key$,a$ v1$=string$(7," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Art_Isam_ID%,1,adr(Art_ISAM_rec$),adr(v1$),adr(fill$)) a$=a$+v1$ v2$=string$(4," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Art_Isam_ID%,2,adr(Art_ISAM_rec$),adr(v2$),adr(fill$)) a$=a$+v2$ v3$=string$(4," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Art_Isam_ID%,3,adr(Art_ISAM_rec$),adr(v3$),adr(fill$)) a$=a$+v3$ v4$=string$(4," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Art_Isam_ID%,4,adr(Art_ISAM_rec$),adr(v4$),adr(fill$)) a$=a$+v4$ v5$=string$(255," ") : fill$ =" " res% = dll_call5("ExtractIsamField",Art_Isam_ID%,5,adr(Art_ISAM_rec$),adr(v5$),adr(fill$)) a$=a$+v5$ item_add ListeArt%,v5$ item_add ListeUrl%,a$ v1$="" : v2$="" :v3$="" :v4$="" :v5$="" : a$="" END_SUB ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DATAS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SUB CreatePageHtml(A%) dim_local i%,a$,b$,u$,res% if A% =0 SelectedArt$ = "plmapp.pdf" else SelectedArt$ = item_read$(ListeUrl%,A%) end_if file_open_write FW_open%,htm_file$ restore for i%=1 to 62 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 16 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 6 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 25 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 70 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 7 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 6 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 20 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 64 : read a$ : b$=b$+chr$(val(a$)) : next i% :b$=b$+SelectedArt$ for i%=1 to 53 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 7 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 7 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" for i%=1 to 7 : read a$ : b$=b$+chr$(val(a$)) : next i% :file_writeln FW_open%,b$ : b$="" File_close FW_open%
res% = dll_call2("WB_Url",WeB%,adr(htm_file$)) END_SUB
data "60","33","68","79","67","84","89","80","69","32","72","84","77","76","32","80","85","66","76","73","67","32","34" data "45","47","47","87","51","67","47","47","68","84","68","32","72","84","77","76","32","52","46","48","49","32","84" data "114","97" data "110","115","105","116","105","111","110","97","108","47","70","82","34","62" data "60","104","116","109","108","32","108","97","110","103","61","34","102","114","34","62" data "60","104","101","97","100","62" data "9","60","116","105","116","108","101","62","65","114","116","105","99","108","101","32","49","60","47","116","105" data "116","108","101","62" data "9","60","109","101","116","97","32","104","116","116","112","45","101","113","117","105","118","61","34","67","111" data "110","116","101","110","116","45","84","121","112","101","34","32","99","111","110","116","101","110","116","61","34" data "116","101","120","116","47","104","116","109","108","59","32","99","104","97","114","115","101","116","61","85","84" data "70" data "45","56","34","32","47","62" data "60","47","104","101","97","100","62" data "60","98","111","100","121","62" data "9","60","100","105","118","32","32","105","100","61","34","65","114","116","105","99","108","101","34","62" data "9","9","60","79","66","74","69","67","84","32","100","97","116","97","61","34","104","116","116","112","58","47","47" data "112","97","110","111","114","97","109","105","99","108","101","109","97","103","46","109","97","103","105","120","46" data "110","101","116","47","112","117","98","108","105","99","47","65","114","116","105","99","108","101","115","47" data "34","32","119","105","100","116","104","61","54","53","48","32","104","101","105","103","104","116","61","53","55" data "48","32","116","121","112","101","61","97","112","112","108","105","99","97","116","105","111","110","47","112" data "100","102","62","60","47","79","66","74","69","67","84","62" data "9","60","47","100","105","118","62" data "60","47","98","111","100","121","62" data "60","47","104","116","109","108","62" J' aurai mis le temps mais elle est là...
Dernière édition par ygeronimi le Mar 8 Sep 2015 - 17:01, édité 1 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Visionneuse pour PLM Lun 7 Sep 2015 - 18:20 | |
| C'est pas mal, bien que ce tri peut se faire directement sur le site du MAG.
Mais c'est un beau travail et utile.
A+ | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Visionneuse pour PLM Lun 7 Sep 2015 - 19:44 | |
| Salut ygeronimi ! chez moi ça ne fonctionne pas ! Ton programme a l'air de tourner rond, mais c'est l'affichage de la page qui pose problème. J'ai juste une petite croix rouge en haut a gauche de la page d'affichage de droite. Sinon j'ai bien les menus et l'affichage des différents éléments a gauche. J'ai mis la toute dernière version de KGF. j'utilise CHROME comme navigateur pas défaut Si tu as une idée... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Visionneuse pour PLM Lun 7 Sep 2015 - 19:50 | |
| Not correct expression or negative ... line 248 ( Art_ISAM_rec$ = string$(Art_ISAM_reclen%," ")) | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Visionneuse pour PLM Lun 7 Sep 2015 - 20:45 | |
| Salut tout le monde. Moi aussi, j’utilise Chrome et c’est NICKEL ! Bravo Ygeronimi, ça fonctionne comme sur des roulettes ! Beau travail ! EDIT : Tu aurais pu écourter les lignes DATA pour éviter la très large page sur le Forum. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 5:42 | |
| - Papydall a écrit:
- Tu aurais pu écourter les lignes DATA pour éviter la très large page sur le Forum.
Oui c'est vrai, mais il me semble que le visualiseur de code du forum (MEMO ?) comporte des ascenseurs. Donc, il ne devrait pas y avoir ce problème. Il faut que l'hébergeur réduise la largeur de ce MEMO. Heureusement, qu'il n'y a pas le même problème en hauteur. @Ygeronimi, Juste pour pinailler et dire quelque chose. Soit tu mets le FORM en BORDER_SMALL, soit le MEMO s'agrandit si on maximise. Bon, je sors. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 8 Sep 2015 - 7:19 | |
| @ Minibug,
Je ne pense pas que ce soit lié à chrome, j' utilise les fonctions de kgf basées sur IE. Peut être une histoire de blocage des plugs in pour la lecture des *.pdf. là, je sèche.
@ Jicehel,
J' ai eu ce problème une fois au premier lancement, j' ai relancé et plus rien. je pense qu' une fonction commence avant qu' une autre ait fini. je vais essayer de placer un wait, il s' agit de fonctions dll. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 8 Sep 2015 - 7:33 | |
| @ Minibug,
Par curiosité, va dans "C:\Temp" et lance "plm_reader.htm" | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 8:06 | |
| @ygeronimi. J'essayerais de mettre de wait ce soir sauf si tu trouves une autre solution entre les 2. A priori, ça doit être à l'ouverture de la base | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 9:42 | |
| Salut - Citation :
- Par curiosité, va dans "C:\Temp" et lance "plm_reader.htm"
Oui ça affiche bien la page ! Et là ou boulot, j'ai un message sur la page de droite (je pense que c'est le programme PDF) qui marque INITIALISATION EN COURS et il ne se passe rien... Bizarre, 2 PC différents et aucun des 2 n'affiche la page correctement !! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 9:46 | |
| voici la page en question : | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Mar 8 Sep 2015 - 10:41 | |
| Je suis avec "Opéra" en navigateur par defaut. Essai de ré-installer le plug-in d' acrobat-reader... | |
| | | Mike
Nombre de messages : 31 Age : 73 Localisation : NANCY Date d'inscription : 12/06/2007
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 16:26 | |
| Bonjour à tous,
Bravo Ygeronimi, cela fonctionne parfaitement chez moi. Je suis sous W7 et Mozilla Firefox. Cette implémentation des fichiers Isam dans Panoramic va permettre de faire beaucoup de choses. Bravo au maître Klaus
Par contre, j'ai essayé le programme tel que défini dans le mag concernant les villes. Cela ne fonctionne pas chez moi. Le début est OK ( téléchargement du CSV, création du txt , création du fichiers Villes. IX et Villes .DAT. Puis erreur à la ligne 222:
Not correct expression or negative ... line 222 rec$ = string$(reclen%," ")
J'ai réessayé plusieurs fois de suite en écrasant les fichiers générés et c'est pareil. Même chose en réécrivant un fichier source Je ne sais pas si d'autres ont essayé ce programme mais quand j'ai vu le message d'erreur de Jicehel :
Not correct expression or negative ... line 248 ( Art_ISAM_rec$ = string$(Art_ISAM_reclen%," "))
Je me suis dit qu'il y avait là un point commun avec reclen%
Bonne soirée à tous Mike | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 8 Sep 2015 - 16:46 | |
| J' ai mis un zip sur mon webdav corrigeant l' erreur de Jicehel. Le problème vient, il me semble de l' événementiel. lorsque l' on lance un programme, il effectue les taches les une après les autres dans l' ordre établit par le programmeur. Ceci est vrai dans le cas d' un programme tout Panoramic, sauf que. Lors de l' emploi d' une dll avec plusieurs de ses fonctions, si les fonctions sont bien lancées les unes après les autres dans cet ordre établit, le lancement de la deuxième n' attends pas le résultat de la première. ce qui donne ce petit souci. Il faut donc, conditionner le lancement de la deuxième en fonction du résultat de la première ne serait ce que par un "if....end_if". Ceci n' est que mon avis, je peux être dans l' horreur...heu...l' erreur. Klaus sera sûrement plus apte à répondre. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 17:11 | |
| Là, tu m'étonnes, Ygeronimi. A ma connaissance, les seules fonctions qui retournent sans garantie d'exécution complète, ce sont les fonctions de traitement d'images qui manipulent le presse-papier, dans un sans ou un autre. On en maîtrise pas la gestion du presse-papier. Par contre, tout ce qui touche à ISAM,est bien terminé lorsque la fonction retourne. Aucun doute là-dessus. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 8 Sep 2015 - 17:16 | |
| Oui mais que se passe t il si une deuxième fonction qui a besoin du résultat de la première est lancé avant que la première fonction soit terminée ?... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 8 Sep 2015 - 17:21 | |
| dans le cas de PLM Reader je lançais l' ouverture des bases ( il y en a 4 ) puis je récupérait les longueurs des enregistrements - Code:
-
' Ouverture des bases ' articles if Art_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Art_ISAM_id%,adr(Art_ISAM_nam$)) end_if ' mags if Mag_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Mag_ISAM_id%,adr(Mag_ISAM_nam$)) Mag_ISAM_reclen% = dll_call1("GetIsamRecordLength",Mag_ISAM_id%) Mag_ISAM_rec$ = string$(Mag_ISAM_reclen%," ") end_if ' rubriques if Rub_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Rub_ISAM_id%,adr(Rub_ISAM_nam$)) end_if ' auteurs if Aut_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Aut_ISAM_id%,adr(Aut_ISAM_nam$)) end_if
' Récupération de la longueur des enregistrements ' articles Art_ISAM_reclen% = dll_call1("GetIsamRecordLength",Art_ISAM_id%) Art_ISAM_rec$ = string$(Art_ISAM_reclen%," ") ' mags Mag_ISAM_reclen% = dll_call1("GetIsamRecordLength",Mag_ISAM_id%) Mag_ISAM_rec$ = string$(Mag_ISAM_reclen%," ") ' rubriques Rub_ISAM_reclen% = dll_call1("GetIsamRecordLength",Rub_ISAM_id%) Rub_ISAM_rec$ = string$(Rub_ISAM_reclen%," ") ' auteurs Aut_ISAM_reclen% = dll_call1("GetIsamRecordLength",Aut_ISAM_id%) Aut_ISAM_rec$ = string$(Aut_ISAM_reclen%," ") là il y a l' erreur car : Art_ISAM_reclen% = 0 - Code:
-
' Ouverture des bases ' Récupération de la longueur des enregistrements ' articles if Art_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Art_ISAM_id%,adr(Art_ISAM_nam$)) Art_ISAM_reclen% = dll_call1("GetIsamRecordLength",Art_ISAM_id%) Art_ISAM_rec$ = string$(Art_ISAM_reclen%," ") end_if ' mags if Mag_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Mag_ISAM_id%,adr(Mag_ISAM_nam$)) Mag_ISAM_reclen% = dll_call1("GetIsamRecordLength",Mag_ISAM_id%) Mag_ISAM_rec$ = string$(Mag_ISAM_reclen%," ") end_if ' rubriques if Rub_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Rub_ISAM_id%,adr(Rub_ISAM_nam$)) Rub_ISAM_reclen% = dll_call1("GetIsamRecordLength",Rub_ISAM_id%) Rub_ISAM_rec$ = string$(Rub_ISAM_reclen%," ") end_if ' auteurs if Aut_ISAM_exist% =0 res% = dll_call2("OpenIsamFile",Aut_ISAM_id%,adr(Aut_ISAM_nam$)) Aut_ISAM_reclen% = dll_call1("GetIsamRecordLength",Aut_ISAM_id%) Aut_ISAM_rec$ = string$(Aut_ISAM_reclen%," ") end_if Là, plus d' erreur.
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 18:54 | |
| Oui, je confirme, comme ça, ça ne bloque plus. Ca fonctionne même très bien, la lecture est rapide et la recherche très simple. Eventuellement, on pourrait imaginer des moteurs de recherches plus complexe mais est-ce bien utile ? Très joli programme qui facilite la navigation dans les articles.
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| | | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 20:50 | |
| Chez moi, ça a marché du premier coup. Thank you Ygeronimi. - Minibug a écrit:
- bon, moi j'abandonne !!
Hé,là c’est une entorse à la Devise Shadok | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Visionneuse pour PLM Mar 8 Sep 2015 - 21:24 | |
| Oui Papydall, tu as raison ! Mais je ne vais pas me prendre la tête, en sachant que je peux le voir ailleurs... Donc no soucis ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 9 Sep 2015 - 13:05 | |
| Dommage que cela ne veuille pas fonctionner chez toi... Ce qui est encore plus dommage, c' est de ne pas avoir la solution car cela pourrait se reproduire chez d' autres... | |
| | | Mike
Nombre de messages : 31 Age : 73 Localisation : NANCY Date d'inscription : 12/06/2007
| Sujet: Encore Isam pour retour d'expérience Mar 15 Sep 2015 - 17:56 | |
| Bonsoir à tous,
Je reviens sur le mag et le fichier Villes. J'ai cherché pourquoi il ne fonctionnait pas (chez moi) et je pense avoir trouvé. Tout vient de la fonction "GetIsamRecordLength" et par conséquent la variable RecLen qui n'a pas été déclarée En effet, la DLL de klaus dit bien d'ajouter l'identifiant ISAM s'il n'a pas été défini
res% = dll_call1("GetIsamRecordLength",IsamID%)
La ligne suivante : reclen% = dll_call0("GetIsamRecordLength") Renvoie une erreur
Si elle est remplacée par : reclen% = dll_call1("GetIsamRecordLength",isamID%) c'est OK et permet de finaliser le programme
@ Klaus Merci de confirmer car je ne voudrais pas partir sur une erreur d'appréciation Mike | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Visionneuse pour PLM Mar 15 Sep 2015 - 22:00 | |
| Absolument exact, Mike ! La version "sans paramètre" de cette fonction est une version ancienne aui a été modifiée depuis, et la doc actuelle reflète bien l'état actuel. J'ai été conduit à faire l'ajout de ce paramètre pour pouvoir gérer de façon plus "simple" la gestion de plusieurs fichiers ISAM simultanés. Auparavant, cette fonction s'appliquait au dernier fichier ISAM accédé (et dont les paramètres étaient chargés dans la zone "active" de la gestion des fichiers ISAM). La version actuelle permet de connaître la longueur d'enregistrement de n'importe quel fichier ISAM ouvert, qu'il ait été accédé ou non juste avant. Donc, oui: il faut bien utiliser la version: - Code:
-
dim res% res% = dll_call1("GetIsamRecordLength",IsamID%) comme le dit la doc. Bravo, Mike ! | |
| | | Contenu sponsorisé
| Sujet: Re: Visionneuse pour PLM | |
| |
| | | | Visionneuse pour PLM | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |