VB6 et Hp-GL -- CAO [Résolu]

cs_nkos 7 Messages postés vendredi 7 janvier 2005Date d'inscription 17 mai 2006 Dernière intervention - 27 janv. 2006 à 17:13 - Dernière réponse : gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention
- 8 févr. 2006 à 21:45
Bonjour,
Sous VB6,
Comment faire pour ouvrir un fichier au format hpgl (*.plt) (lire son contenu) afin de visualiser les points et droites du fichier?

Sinon de façon plus général comment parcourir le contenu d'un fichier ?
Et comment dessiner à l'écran avec VB6 ?
Merci d'avance
Afficher la suite 

12 réponses

Meilleure réponse
gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention - 27 janv. 2006 à 18:02
3
Merci
Re,

Pour lire un fichier texte voici une petite routine:

lngCanal = FreeFile
Open "c:\temps\.....Le fichier" For Input As #lngCanal
Do Until EOF(lngCanal)
Line Input #lngCanal, strResult
Loop
Close #lngCanal

pour le reste comment afficher les points faut plus d'explication comment sont c'est coordonnée??? ect!...

A++
[Gally Home Corp]

Merci gallyhc 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Meilleure réponse
gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention - 1 févr. 2006 à 12:16
3
Merci
Bonjour,

Voici tout le code-source de votre demande. Mais comme je ne connais pas trop les coordonée du ce type de fichier je les affiches avec un facteur qui me permet de les mettres a dimention dans la form.

' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


Option Explicit


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


' DECLARATION DU TYPE POUR LE PLT.
Private Type TPECOORDXY
lngX As Long
lngY As Long
End Type


' DECLARATION DES VARIABLES GLOBALE.
Dim strFilePath As String


' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


Private Sub Form_Load()
' RECUPERATION DU PATH DE L'APPLICATION.
strFilePath = App.Path
If Right(strFilePath, 1) <> "" Then strFilePath = strFilePath & ""


' CHARGEMENT ET AFFICHAGE DU FICHIER.
Call setDrawPLT(strFilePath & "test.plt", 20)


End Sub


' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


Private Function setDrawPLT(ByVal strFileName As String, ByVal lngFactor As Long) As Boolean
' DECLARATION DES VARIABLES.
Dim lngI As Long
Dim lngJ As Long
Dim lngCanal As Long
Dim strResult As String
Dim tabResult() As String
Dim tpeResult() As TPECOORDXY


' CHARGMENT DU FICHIER PLT.
lngCanal = FreeFile
Open strFileName For Input As #lngCanal
Do Until EOF(lngCanal)
Line Input #lngCanal, strResult
Call StringDecoupe(strResult, " ", tabResult())
If UBound(tabResult()) = &H2 Then
lngI = lngI + &H1
ReDim Preserve tpeResult(&H1 To lngI) As TPECOORDXY
tpeResult(lngI).lngX = Val(tabResult(&H1)) / lngFactor
tpeResult(lngI).lngY = Val(tabResult(&H2)) / lngFactor
Else
GoTo ERREUR
End If
Loop
Close #lngCanal


' AFFICHAGE DU FICHIER PLT.
For lngJ = &H1 To lngI - &H1 Step &H1
frmPrincipal.Line (tpeResult(lngJ).lngX, tpeResult(lngJ).lngY)-(tpeResult(lngJ + &H1).lngX, tpeResult(lngJ + &H1).lngY), &H0, BF
Next lngJ
ERREUR:


End Function


' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


Public Sub StringDecoupe(ByVal strLine As String, ByVal strSeparator As String, ByRef strResult() As String)
' DECLARATION DES VARIABLES.
Dim lngI As Long ' VARIABLE TEMPORAIRE.
Dim lngJ As Long ' VARIABLE TEMPORAIRE.
Dim lngU As Long ' VARIABLE TEMPORAIRE.


' INITIALISATION DU TABLEAU DE RESULTAT.
ReDim lngResult(&H1 To &H1) As String


' DECOUPE DE LA CHAINE DE CARACTERE.
lngJ = &H1
For lngI = &H1 To Len(strLine) Step &H1
If Mid$(strLine, lngI, Len(strSeparator)) = strSeparator Then
lngU = lngU + &H1
ReDim Preserve strResult(&H1 To lngU) As String
strResult(lngU) = Mid$(strLine, lngJ, (lngI - &H1) - (lngJ - Len(strSeparator)))
lngJ = lngI + Len(strSeparator)
End If
Next lngI
If Right(strLine, Len(strSeparator)) <> strSeparator Then
lngU = lngU + &H1
ReDim Preserve strResult(&H1 To lngU) As String
strResult(lngU) = Mid$(strLine, lngJ, Len(strLine) - (lngJ - Len(strSeparator)))
End If


End Sub


Bonne programmation,
[Gally Home Corp]

Merci gallyhc 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention - 27 janv. 2006 à 17:25
0
Merci
Bonjour,

Tout depend le type de fichier (fichier texte, hexa, bin...). en fonction du type il y a plusieur methode et apres pour le dessin tu programme tes petites routine de traçage et voila...

Donc pour plus d'aide, il faut le type de fichier...

A++
[Gally Home Corp]
cs_nkos 7 Messages postés vendredi 7 janvier 2005Date d'inscription 17 mai 2006 Dernière intervention - 27 janv. 2006 à 17:52
0
Merci
Ce fichier (.plt) est de type texte. Avec les coordonnées des points ...
Comment lire dans un fichier de type texte ?
Et comment afficher à l'écran ces points ?

Merci
A+
cs_nkos 7 Messages postés vendredi 7 janvier 2005Date d'inscription 17 mai 2006 Dernière intervention - 1 févr. 2006 à 11:38
0
Merci
Merci, ca marche nickel ! (la lecture du fichier...)
J'ai donc réussi à lire et à afficher les coordonnées des points.
Ces coordonnées sont de type (x,y) ex d'un cas : (5480 8882)...
2691 8282
2692 8284
2696 8290
2702 8297
2710 8307
2720 8315
2732 8324
....
Reste à savoir comment faut il s'y prendre afin de tracer ces lignes sous VB6!
Merci
Bye
gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention - 1 févr. 2006 à 19:23
0
Merci
[Gally Home Corp]
gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention - 1 févr. 2006 à 19:24
0
Merci
Bonjour,

Peux tu me dire si cela est bon pour vous??? et de me validez si cela est bon!!!

Cordialement,
[Gally Home Corp]
cs_nkos 7 Messages postés vendredi 7 janvier 2005Date d'inscription 17 mai 2006 Dernière intervention - 1 févr. 2006 à 19:43
0
Merci
Merci beaucoup pour ce code qui est très bien fait!
Je suis en train d'adapter mon code au votre, à savoir utiliser des tableaux dynamiques pour enregistrer les coord. après avoir séparé les X et les Y...
Ce que je n'ai pas bien compris, c'est les variables &H0, &H1 &H2 !
Sinon le reste est très bien et je vous en remercie encore!!!
gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention - 3 févr. 2006 à 15:56
0
Merci
Bonjour,

Alors "&h" est en fait des valeur en code hexadecimal par exemple "&h1=1", "&h9=9", "&ha=10", ect...

Par contre si le code fourmi est conforme a votre attente, merci de la valider.

Bonne programmation,
[Gally Home Corp]
cs_nkos 7 Messages postés vendredi 7 janvier 2005Date d'inscription 17 mai 2006 Dernière intervention - 3 févr. 2006 à 17:50
0
Merci
Oui le code est bien conforme à ce que j'attendais!
Vous m'avez bien aider et je vous en remercie !
cs_nkos 7 Messages postés vendredi 7 janvier 2005Date d'inscription 17 mai 2006 Dernière intervention - 6 févr. 2006 à 13:18
0
Merci
Salut,

Mon appli. permettant d'ouvrir/visualiser des images vectorielles au format HPgl fonctionne comme je le souhaitaits! Merci encore

Je souhaiterai maintenant l'améliorer en permettant de la visualiser avec un rendu OpenGl, toujours sous VB6 !!

J'ai récupérer du codes utilisant OpenGL sous VB mais je ne comprend pas tout... :-(
Je souhaite comme l'autre faire apparaître ce fichier avec un rendu OpengL!

Je remercie par avance si tu pouvais m'éclairer!
Sinon je peux faire un nouveau sujet dans le forum

Merci
a+
gallyhc 386 Messages postés samedi 4 octobre 2008Date d'inscription 19 février 2018 Dernière intervention - 8 févr. 2006 à 21:45
0
Merci
Bonjour,

Un rendu en openGL c'est pour faire un rendu en 3D??? Sinon explique moi mieu ce que tu recherche et peu etre que je pourais te rendre service!

Bonne programmation,
[Gally Home Corp]

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.