Explication de ma presence sur le forum....


Poster un nouveau sujet   Répondre au sujet    Forum pour jeunes -> Informatique et Technologies

JahMan
Actif
Actif


Sexe: Sexe:Masculin

Inscrit le: 10 Aoû 2005
Messages: 916

Message Posté le: Mar Aoû 23, 2005 14:03 pm    Sujet du message: Explication de ma presence sur le forum....
voila je suis en stage et je dois convertir un programme TCL qui ressemble à ca :

Code:
set racine "//geodoc/proddm/newcat"
if {[llength $argv]==2} {
set param [lindex $argv 0]
set entree [lindex $argv 1]
} {
#Tableau de choix des fichiers
frame .debut
pack .debut -expand 1 -fill x
frame .param
label .lp -text "Nom du fichier paramètres :"
set param "//geodoc/proddm/newcat/niveaufin.tab"
entry .ep -width 50 -textvariable param
button .rp -text "Recherche" -command {set param \
 [tk_getOpenFile -initialdir $racine -initialfile niveaufin.tab -title "Fichier Paramètres ?" -filetypes {{"Fichier tab" .tab} {"Autres" .*}}]}
pack .param -in .debut -expand 1 -fill x -side top
pack .lp -in .param -side left
pack .rp -in .param -side right
pack .ep -in .param -expand 1 -fill x
frame .entree
label .le -text "Nom du fichier geo :"
entry .ee -width 50 -textvariable entree
button .re -text "Recherche" -command {set entree \
 [tk_getOpenFile -initialdir [pwd] -initialfile *.geo  -title "Fichier Geo ?" -filetypes {{"Fichier .geo " {.geo}} {"Fichier .zip " {.zip}} }]}
pack .entree -in .debut -expand 1 -fill x -side top
pack .le -in .entree -side left
pack .re -in .entree -side right
pack .ee -in .entree -expand 1 -fill x
button .ok -text "Ok" -command {set ok 1}
button .quit -text "Quitter" -command {exit}
pack .ok -in .debut -side left
pack .quit -in .debut -side right
vwait ok
}
if {[file extension $entree]== ".zip"} {
   exec cmd.exe /c pkunzip.exe -o $entree
   set entree "[file rootname $entree].geo"
   destroy .param .entree .debut
   frame .debut
   pack .debut -expand 1 -fill x
   frame .entree
   destroy .le .re .ee .ok .quit
   label .le -text "Nom du fichier geo :"
   entry .ee -width 50 -textvariable entree
   button .re -text "Recherche" -command {set entree \
    [tk_getOpenFile -initialdir [pwd] -initialfile *.geo  -title "Fichier Geo ?" -filetypes {{"Fichier .zip " {.zip}} }]}
   pack .entree -in .debut -expand 1 -fill x -side top
   pack .le -in .entree -side left
   pack .re -in .entree -side right
   pack .ee -in .entree -expand 1 -fill x
   button .ok -text "Ok" -command {set ok 1}
   button .quit -text "Quitter" -command {exit}
   pack .ok -in .debut -side left
   pack .quit -in .debut -side right
   vwait ok
}
set idpts 0
# LAYERS pour les elements graphiques
set tab [open $param r]
set lecture [gets $tab]
incr idpts
set class(INCONNU,class) "  0\nLAYER\n  5\n[format "%X" $idpts]\n100\nAcDbSymbolTableRecord\n  2\nINCONNU\n 70\n0\n 62\n7\n  6\nCONTINUOUS"
set class(INCONNU,present) 0
incr idpts
set class(objet,class) "  0\nLAYER\n  5\n[format "%X" $idpts]\n100\nAcDbSymbolTableRecord\n  2\nobjet\n 70\n0\n 62\n7\n  6\nCONTINUOUS"
set class(objet,present) 0
while {![eof $tab]} {
   if {[file exists $racine/$lecture]==0 || [file exists $racine/$lecture/cst]==0} {set lecture "fond"}   
   if {[file exists $racine/$lecture/cst/dxf.cst]==1} {set rep [open $racine/$lecture/cst/dxf.cst r]} {set rep [open $racine/$lecture/cst/couleur.cst r]}
   set lit [gets $rep]
   while {![eof $rep]} {
      incr idpts
      regsub {^ *} $lit {} lit ;# enlŠve les blanc du debut
      regsub -all { +} $lit { } lit ;# ne laisse qu'un blanc entre les valeurs
      if {$lit!=""} {
      set lit [split $lit]
      set cst [lindex $lit 0]
      regsub -all { } $cst {} cst
      set type [lindex $lit 1]
      set epais [lindex $lit 2]
      set tcolor [lindex $lit 3]
      regsub -all {^0*} $tcolor {} tcolor
      if {$tcolor==""} {set tcolor 7}
      set motif [lindex $lit 4]
      set fond [lindex $lit 5]
      set mcolor [lindex $lit 6]
      set class($cst,present) 0
      set class($cst,class) "  0\nLAYER\n  5\n[format "%X" $idpts]\n100\nAcDbSymbolTableRecord\n  2\n$cst\n 70\n0\n 62\n$tcolor\n  6\nCONTINUOUS"
      }
      set lit [gets $rep]
   }
close $rep
set lecture [gets $tab]
}
close $tab
set Xmax 0
set Ymax 0
set Xmin 99999999
set Ymin 99999999
set ecritlayer ""
set nblayer 0
#Analyse du fichier geo pour mini maxi et layer
proc analyse {X Y cst obj} {
   global Xmin Xmax Ymin Ymax class ecritlayer nblayer trace idpts
   if {$cst==""} {set cst "INCONNU"}
   regsub -all { } $cst {} cst
   if {[info exists class($cst,class)]==0} {
      set class($cst,present) 0
      incr idpts
      set class($cst,class) "  0\nLAYER\n  5\n[format "%X" $idpts]\n100\nAcDbSymbolTableRecord\n  2\n$cst\n 70\n    0\n 62\n    7\n  6\nCONTINUOUS"
   }
   if {$class($cst,present)==0} {
      set class($cst,present) 1
      set ecritlayer "$ecritlayer\n$class($cst,class)"
      incr nblayer
   }
   if {$obj==0} {
   if {$X>$Xmax} {set Xmax $X}
   if {$Y>$Ymax} {set Ymax $Y}
   if {$X<$Xmin} {set Xmin $X}
   if {$Y<$Ymin} {set Ymin $Y}
   }
}
# Chargement des proc
source /geo2dxf/dxf.tcl
#Lecture Ecriture
set sortie [file rootname $entree]
set nomsortie $sortie
set entree [open $entree r]
fconfigure $entree -buffersize 1024000
set lit_geo [gets $entree]
set id [pid]
set sortie_Block [open "B$id" w]
fconfigure $sortie_Block -buffersize 1024000
set sortie_Entities [open "E$id" w]
fconfigure $sortie_Entities -buffersize 1024000
set s 0
set d 0
set inclusion 0
set courbe 0
set idtexte 0
set Ecrit ""
while {![eof $entree]} {
   set decoupe [split $lit_geo \;]
   set topologie [lindex $decoupe 1]
   # Generation des lignes et polylgnes
   if {$topologie=="P" | $topologie=="L" & [lindex $decoupe 17]!=0} {
      PL 0
      set Ecrit ""
   }
   # Generation des objets
   if {$topologie=="S"} {
      set Ecrit ""
      set cst [lindex $decoupe 7]
      regsub { } $cst {} cst
      set Entitee [lindex $decoupe 6]
      if {$Entitee==""} {set Entitee "INCONNUE"}
      set HR1 $cst
      if {[info exists symb($cst,exist)]==0} {
    set symb($cst,exist) 1
    set tab [open $param r]
    set lecture [gets $tab]
         while {[eof $tab]==0 & [file exists $racine/$lecture/symboles/$cst.geo]==0} {
              set lecture [gets $tab]
         }
         close $tab
    if {[file exists $racine/$lecture/symboles/$cst.geo]==0 || [file exists $racine/$lecture/symboles]==0 | [file exists $racine/$lecture/symboles]==0 } {
       #puts $trace "objets $cst inconnu"
       set cst "HR1"
    }
    if { $cst!="HR1" } {
    set ficsymb [open "$racine/$lecture/symboles/$cst.geo" r]
         } {set ficsymb [open "$racine/niveaufin/symboles/HR1.geo" r]}
    set lit_symb [gets $ficsymb]
    set Xobjmax 0
    set Yobjmax 0
    set Xobjmin 99999999
         set Yobjmin 99999999
    while {![eof $ficsymb]} {
       set decsymb [split $lit_symb \;]
       set topologie [lindex $decsymb 1]
       if {$topologie=="S" & [lindex $decsymb 7]=="ANC"} {
          set xorg [expr .001*[lindex $decsymb 12]]
          set yorg [expr .001*[lindex $decsymb 13]]
          set symb($cst,dimx) [lindex $decsymb 17]
          set symb($cst,dimy) [lindex $decsymb 18]
          incr idpts
          set ancre "  0\nBLOCK\n  8\n0\n  2\n$HR1\n  5\n[format "%X" $idpts]\n 10\n$xorg\n 20\n$yorg\n 30\n0\n 70\n0"
            }
            if {$topologie=="P" | $topologie=="L" & [lindex $decsymb 17]!=0} {
          if {[lindex $decsymb 12]>$Xobjmax} {set Xobjmax [lindex $decsymb 12]}
          if {[lindex $decsymb 13]>$Yobjmax} {set Yobjmax [lindex $decsymb 13]}
          if {[lindex $decsymb 12]<$Xobjmin} {set Xobjmin [lindex $decsymb 12]}
               if {[lindex $decsymb 13]<$Yobjmin} {set Yobjmin [lindex $decsymb 13]}
               set inverse $lit_geo
               set lit_geo $lit_symb
               PL 1
            }
            set lit_symb [gets $ficsymb]
         }
         set lit_geo $inverse
         puts $sortie_Block "$ancre"
         puts $sortie_Block "$Ecrit"
         set finsymb 1
         close $ficsymb
         set cst [lindex $decoupe 7]
         regsub { } $cst {} cst
         set symb($cst,dx) [expr .1*($Xobjmax-$Xobjmin)]
         set symb($cst,dy) [expr .1*($Yobjmax-$Yobjmin)]
         puts $sortie_Block "  0\nENDBLK"
      }
      set cst [lindex $decoupe 7]
      regsub { } $cst {} cst
      analyse [lindex $decoupe 12] [lindex $decoupe 13] objet 0
      set X  [expr .01*[lindex $decoupe 12]]
      set Y  [expr .01*[lindex $decoupe 13]]
      set Z  [lindex $decoupe 14]
      regsub {\+0} $Z {} Z
      if {$Z==""} {set Z 0}
      set Z  [expr .01*$Z]
      set dimx [lindex $decoupe 17]
      set dimx [expr 1.0*$dimx/$symb($cst,dx)]
      set dimy [lindex $decoupe 18]
      set dimy [expr 1.0*$dimy/$symb($cst,dy)]
      set angle [lindex $decoupe 19]
      incr idpts
      puts $sortie_Entities "  0\nINSERT\n  8\nobjet\n  2\n$HR1\n  5\n[format "%X" $idpts]\n 10\n$X\n 20\n$Y\n 30\n$Z"
      puts $sortie_Entities " 41\n$dimx\n 42\n$dimy\n 50\n$angle"
   }
   # Generation des ecritures
   if {$topologie=="E"} {
      incr idtexte
      set cst [lindex $decoupe 7]
      regsub { } $cst {} cst
      set Entitee [lindex $decoupe 6]
      if {$Entitee==""} {set Entitee "INCONNUE"}
      set dimx [lindex $decoupe 16]
      set dimy [lindex $decoupe 17]
      set fechelle [expr 1.0*$dimx/$dimy]
      set angle [lindex $decoupe 18]
      set angle [expr 3.14159*$angle/180]
      set gcd [string range [lindex $decoupe 20] 0 0]
      set code72 1
      if {$gcd=="G"} {set code72 0}
      if {$gcd=="D"} {set code72 2}
      set code73 2
      if {$gcd=="B"} {set code73 1}
      if {$gcd=="H"} {set code73 3}
      analyse [lindex $decoupe 12] [lindex $decoupe 13] $cst 0
      set X1 [expr .01*[lindex $decoupe 12]]
      set Y1 [expr .01*[lindex $decoupe 13]]
      set texte [lindex $decoupe 22]
      incr idpts
      set larg [expr .01*$dimy]
      set long [expr .01*$dimx*[string length $texte]*.5]
      set X2 [expr $X1+$long*cos($angle)]
      set Y2 [expr $Y1+$long*sin($angle)]
      puts $sortie_Entities "   0\nTEXT\n  1\n$texte\n  5\n[format "%X" $idpts]\n  8\ntexte\n 10\n$X1\n 20\n$Y1"
      puts $sortie_Entities " 40\n$larg"
  }
   set lit_geo [gets $entree]
}
close $entree
flush $sortie_Entities
close $sortie_Entities
flush $sortie_Block
close $sortie_Block
# Finalisation du fichier DXF

set sortie [open $nomsortie.dxf w]
#fconfigure $sortie -buffersize 1024000
set Xmin [expr .01*$Xmin]
set Xmax [expr .01*$Xmax]
set Ymin [expr .01*$Ymin]
set Ymax [expr .01*$Ymax]
set Xcentre [expr .5*($Xmin+$Xmax)]
set Ycentre [expr .5*($Ymin+$Ymax)]
puts $sortie "  0\nSECTION\n  2\nHEADER\n  9"
puts $sortie "\$ACADVER\n  1\nAC1009\n  9\n\$INSBASE\n 10\n0\n 20\n0\n 30\n0\n  9"
puts $sortie "\$EXTMIN\n 10\n$Xmin\n 20\n$Ymin\n 30\n0\n  9\n\$EXTMAX\n 10\n$Xmax\n 20\n$Ymax\n 30\n50\n  9"
puts $sortie "\$LIMMIN\n 10\n$Xmin\n 20\n$Ymin\n  9\n\$LIMMAX\n 10\n$Xmax\n 20\n$Ymax\n  9\n\$LUPREC\n 70\n    2\n  0\nENDSEC"
puts $sortie "  0\nSECTION\n  2\nCLASSES\n  0\nENDSEC"
puts $sortie "  0\nSECTION\n  2\nTABLES"
#puts $sortie "  0\nTABLE\n  2\nVPORT\n  5\n1\n 70\n0\n  0\nENDTAB"
#puts $sortie "  0\nTABLE\n  2\nLTYPE\n  5\n3\n 70\n0\n  0\nENDTAB"
#puts $sortie "  0\nTABLE\n  2\nUCS\n  5\n4\n 70\n0\n  0\nENDTAB"
#puts $sortie "  0\nTABLE\n  2\nSTYLE\n  5\n5\n 70\n0\n  0\nENDTAB"
#puts $sortie "  0\nTABLE\n  2\nVIEW\n  5\n6\n 70\n0\n  0\nENDTAB"
#puts $sortie "  0\nTABLE\n  2\nAPPID\n  5\n7\n 70\n0\n  0\nENDTAB"
#puts $sortie "  0\nTABLE\n  2\nDIMSTYLE\n  5\n8\n 70\n0\n  0\nENDTAB"
#puts $sortie "  0\nTABLE\n  2\nBLOCK_RECORD\n  5\n8\n 70\n0\n  0\nENDTAB"
puts $sortie "  0\nTABLE\n  2\nLAYER\n  5\nA\n100\nAcDbSymbolTable\n 70\n$nblayer$ecritlayer\n  0\nENDTAB\n  0\nENDSEC"
#puts $sortie "  0\nTABLE\n  2\nLAYER\n  5\nA\n 70\n1$ecritlayer\n  0\nENDTAB\n  0\nENDSEC"
puts $sortie "  0\nSECTION\n  2\nBLOCKS"
close $sortie
#set entree_Block [open B$id r]
#fconfigure $entree_Block -buffersize 1024000
#set lit [gets $entree_Block]
#while {[eof $entree_Block]==0} {if {$lit!=""} {puts $sortie $lit};set lit [gets $entree_Block]}
#close $entree_Block
exec cat B$id >> $nomsortie.dxf
exec d:/utils/rm -f B$id
set sortie [open $nomsortie.dxf a]
puts $sortie "  0\nENDSEC"
puts $sortie "  0\nSECTION\n  2\nENTITIES"
close $sortie
#set entree_Entitee [open E$id r]
#fconfigure $entree_Entitee -buffersize 1024000
#set lit [gets $entree_Entitee]
#while {[eof $entree_Entitee]==0} {if {$lit!=""} {puts $sortie $lit};set lit [gets $entree_Entitee]}
#close $entree_Entitee
exec cat E$id >> $nomsortie.dxf
exec d:/utils/rm -f E$id
set sortie [open $nomsortie.dxf a]
puts $sortie "  0\n\ENDSEC\n  0\nEOF"
close $sortie
#exec d:/utils/rm -f E$id
#puts $sortie "  0\n\ENDSEC\n  0\nEOF"
#flush $sortie
#puts $trace "Termine"
#flush $trace
exit


En C....

Si ya quelq'un qui veut m'aider Laughing

Put*** de stage
Pache
Membre
Membre




Inscrit le: 24 Juin 2005
Messages: 173

Message Posté le: Mar Aoû 23, 2005 16:17 pm    Sujet du message:
Sympa comme code, si on aime tant mieux,
(tu bosses beaucoup dessus ? parceque tu es quand même pas mal sur le forum Rolling Eyes )

Vois avec nash il pourrat peut-être t'aider
Bon courage en tout cas Wink
JahMan
Actif
Actif


Sexe: Sexe:Masculin

Inscrit le: 10 Aoû 2005
Messages: 916

Message Posté le: Mer Aoû 24, 2005 10:25 am    Sujet du message:
hehe pache, clair je bosse pas beaucoup... je deprime ces derniers temps...

Alors entre deux posts je tape une petite ligne de code, je me documente sur le langage...

Tu sais un stage non remunéré ca motive vraiment, mais vraiment pas du tout!

merci pour ton soutien

Jah Bless

Poster un nouveau sujet   Répondre au sujet    Forum pour jeunes -> Informatique et Technologies