Oppure

Loading
12/04/09 18:29
azz.ciccio
ciao a tutti, mi sono inbattuta su un problema che non riesco a venirne fuori;
ho il solito file di testo che vado a leggere e scrivo tutti i dati in una listbox. e fino a qui nessun problema.
nel file di testo posso trovarmi una serie di valori cha vanno da T01 T99 in ordine sparso, ovviamente non posso creare un ciclo case con 99 possibili valori... brutto da vedere e soprattutto inutile. la soluzione piu' semplice sarebbe un ciclo if;
tipo:

If dataDRD = "T01" Then
List2.AddItem dataDRD$
xt = xt + 1
Label4 = xt
End If


ogni volta che la funzione principale mi legge una riga del file di testo scrive una listbox tutti i valori e in un'altra listbox tutti i vari T01,T02,T03 ecc...
pero' tra le virgolette dovrei metterci qualcosa (ma cosa?)
spero di essere stato chiaro :-|
grazie :k:
aaa
12/04/09 18:42
ruggy94
non ho capito bene cosa hai nel file di testo... esempio:
T01
T15
etc.
oppure c'è anche altro?
e poi non ho capito perchè devi usare l'if (che tanto per precisione non è un ciclo ma un costrutto :D), cioè quale è la condizione che imponi? non esegui la stessa operazione in ogni caso?
aaa
12/04/09 18:57
azz.ciccio
Postato originariamente da ruggy94:

non ho capito bene cosa hai nel file di testo... esempio:
T01
T15
etc.
oppure c'è anche altro?
e poi non ho capito perchè devi usare l'if (che tanto per precisione non è un ciclo ma un costrutto :D), cioè quale è la condizione che imponi? non esegui la stessa operazione in ogni caso?


ciao, ti posto il codice cosi' sicuramente e' piu' chiaro.
Private Sub Command1_Click()
  Dim dataDRD As String
  Dim xt As Long
  Dim varT As Variant
  varT = Array("T01", "T02", "T03", "T04")

  
  CommonDialog1.CancelError = True
  On Error GoTo ErrHandler
  CommonDialog1.Filter = "DRD Files(*.drd)|*.drd|"
  CommonDialog1.ShowOpen
  Text1.Text = CommonDialog1.FileName
  
  Open CommonDialog1.FileName For Input As #1
While Not EOF(1)
Input #1, dataDRD


If dataDRD = varT Then
List2.AddItem dataDRD$
xt = xt + 1
Label4 = xt
ElseIf dataDRD = "M48" Then
ElseIf dataDRD = "M72" Then
ElseIf dataDRD = "%" Then
ElseIf dataDRD = "M30" Then
Else: List1.AddItem dataDRD$
End If

Wend
Close #1
  
  Exit Sub
ErrHandler:
  Exit Sub
  
End Sub
aaa
12/04/09 19:33
GrG
sec me se ti spiegassi a parole saresti + comprensibile... fai esempi (non di codice) di come è strutturato il file ecc..
aaa
12/04/09 19:41
azz.ciccio
Postato originariamente da GrG:

sec me se ti spiegassi a parole saresti + comprensibile... fai esempi (non di codice) di come è strutturato il file ecc..

%
M48
M72
T01C0.0315
T02C0.0320
T03C0.0354
T04C0.0394
T05C0.0440
T06C0.0470
T07C0.0520
T08C0.0787
T09C0.0866
T10C0.1100
T11C0.1620
%
T01        // i vari T01 ecc... li devo copiare in un'altra listbox
X1950Y9926
X1950Y10926
T02
X17950Y18426
X17650Y19126
T03
X10950Y26926
X9950Y26926
T04
X22465Y26181
X24434Y26181
T05
X18950Y27926
X33450Y15926
T06
X24100Y16076
X26880Y15316
T07
X28950Y2926
X22950Y2926
T08
X14190Y28426
X1087Y28426
T09
X21048Y23426
X25851Y23426
T10
X25950Y2926
T11
X30900Y13926
X37150Y20726 // le coordinate x y possono variare anche fino a 500
M30
aaa
12/04/09 19:49
ruggy94
Ok. E tu cosa vuoi che ti appaia nelle listbox? In una i T01 etc. e nell'altra i codici che li seguono?
aaa
12/04/09 19:52
azz.ciccio
Postato originariamente da ruggy94:

Ok. E tu cosa vuoi che ti appaia nelle listbox? In una i T01 etc. e nell'altra i codici che li seguono?


esatto.
aaa
12/04/09 20:05
GrG
ma il pezzo iniziale, precisamente questo:
%
M48
M72
T01C0.0315
T02C0.0320
T03C0.0354
T04C0.0394
T05C0.0440
T06C0.0470
T07C0.0520
T08C0.0787
T09C0.0866
T10C0.1100
T11C0.1620
%

è fisso o varia?

comunque per ste cose io ti consiglierei vivamente un db
aaa