Oppure

Loading
15/04/09 18:00
ruggy94
Postato originariamente da azz.ciccio:
ma'... in realta era un tentativo di posizionare la scrittura di tutti i punti al centro della picturbox. ma ci pensero' in secondo momento.
A.

Ecco. E quando ci penserai dovrai spiegarti meglio perchè non ci ho capito niente :D :D
aaa
15/04/09 18:41
azz.ciccio
Postato originariamente da ruggy94:

Postato originariamente da azz.ciccio:
il ciclo for conta per 1000 volte...
ogni commento e' benvenuto.
A:k:

Se ogni commento è benvenuto...:D
Se non sbaglio 10*10=100 e non 1000 quindi come dici tu "il ciclo for conta per 100 volte", e non per 1000 :D


e gia' la matematica almeno a questi livelli non e' un'oppinione.
pero' sta di fatto che non funziona.
:-|
aaa
15/04/09 18:51
azz.ciccio
cerco di spiegarmi.

ho un file di testo con valori x434343y342343 per ricavare il valore in pollici devo diverli per 10000. e su questo non c'e' dubbio.
si e' risolto il problema di estrarre i soli valori a destra di x e y e allocarli in listX e listY e fino a qui ok! questi valori vanno letti divisi per la costante di 10000 e scritti sulla picturebox come punti.
cmq, ho messo due variabili per contare quante volte il ciclo for conta, e il risultato e' 45582 cicli invece delle 214 coordinate.
A.:-|:-|
aaa
15/04/09 19:33
ruggy94
di sicuro ti posso dire che il tuo numero 45582 sarebbe 214*213 (mentre dovrebbe essere 214*214) appena finisco di giocare a poker guardo il code :D
aaa
16/04/09 11:26
azz.ciccio
come leggere i dati dalle listbox e' fatta peccato che i due cicli for non vanno bene...
mi spiego; per ogni ciclo di a mi viene eseguito un'intero ciclo di c...
idee??? :-|8-|


Private Sub Command2_Click()
Picture1.Cls
Dim a, b, c, d, pointX, pointY As Long
Dim CostDiv As Long

CostDiv = 10000
Me.DrawWidth = 5

      For a = 0 To ListX.ListCount - 1
      b = Val(ListX.List(a))
      b = b / CostDiv
      For c = 0 To ListY.ListCount - 1
      d = Val(ListY.List(c))
      d = d / CostDiv   
      Picture1.PSet (b, d), vbYellow
      Next c
      Next a
End Sub
aaa
16/04/09 12:15
ruggy94
Postato originariamente da azz.ciccio:per ogni ciclo di a mi viene eseguito un'intero ciclo di c...

In questo momento non posso provare a risolvere il tuo problema perchè non ho il tempo (magari più tardi) ma intanto ti dico che è normale che ad ogni ciclo di a venga eseguito tutto il ciclo c, perchè finchè il contatore (a nel primo caso, c nel secondo) non raggiunge il valore finale del ciclo, il programma non esce mai dal ciclo, quindi, dentro il ciclo a, appena il programma trova il ciclo c, lo esegue finchè non finisce del tutto.
aaa
16/04/09 12:25
azz.ciccio
Postato originariamente da ruggy94:

Postato originariamente da azz.ciccio:per ogni ciclo di a mi viene eseguito un'intero ciclo di c...

In questo momento non posso provare a risolvere il tuo problema perchè non ho il tempo (magari più tardi) ma intanto ti dico che è normale che ad ogni ciclo di a venga eseguito tutto il ciclo c, perchè finchè il contatore (a nel primo caso, c nel secondo) non raggiunge il valore finale del ciclo, il programma non esce mai dal ciclo, quindi, dentro il ciclo a, appena il programma trova il ciclo c, lo esegue finchè non finisce del tutto.



ciao, si infatti concordo, pero' non riesco a trovare una soluzione alternativa per risolvere il problema. altrimenti devo fare la funziona inversa, ogni volta che elaboro la stringa es. X43243Y43243 carico il valore di x nella listX e salvo carico il valore di Y nella listY recupero il valore di X e lo do in pasto alla funzione pset.
pero' averei voluto disegnare i punti tramite un pulsante....:noway:
aaa
16/04/09 13:19
ruggy94
Allora. Ogni punto viene individuato da una coordinata X ed una Y. Tu vuoi che le coordinate X e Y vengano accoppiate in questo modo: la prima X con la prima Y; la seconda X con la seconda Y, etc. oppure la prima X con la prima Y; la prima X con la seconda Y, etc.??
In breve se nelle due liste hai 214 coordinate (intendo ovviamente 214 nella lista X e 214 in quella Y) vuoi che ti appaiano nella picture 214 punti? Oppure 45796 (cioè 214^2)?
Ti faccio questa domanda perchè il codice cambia molto a seconda della tua scelta.

EDIT: Già che ci sono ti posto il code che ti serve se vuoi che alla fine appaiano tanti punti quante sono le coordinate (modifico il tuo codice):
Private Sub Command2_Click() 
Picture1.Cls 
Dim a, b, d, pointX, pointY As Long 
Dim CostDiv As Long 

CostDiv = 10000 
Me.DrawWidth = 5 

      For a = 0 To ListX.ListCount - 1 
      b = Val(ListX.List(a)) 
      b = b / CostDiv 
      d = Val(ListY.List(a)) 
      d = d / CostDiv   
      Picture1.PSet (b, d), vbYellow 
      Next a 
End Sub
Ultima modifica effettuata da ruggy94 16/04/09 13:22
aaa