Newsgroup: it.comp.lang.visual-basic
Titolo: nuovo utente chiede aiuto ;-) una piccola mano...

salve gente,
premetto che solitamente sviluppo in C ma ora sono costretto a fare
una piccola applicazione in vb :-) e che
sono circa 6 anni che non tocco il vb  :-(
ho ha disposizione visual basic 4
il mio problema e' questo:
ho un file in formato hex  fatto circa cosi'
111F900EB01EC01F301F401F50
0000A120F30DC007621F600C13
000A8000A16093A0319912C0A1
io devo leggere un numero (so io dove si trova e quanti caratteri
leggere) convertirlo in decimale
e a quel punto a seconda se il numero e' ad es. 1 2 3 4 o 5 inseririe
in un oggetto tipo  combo1 oppure tipo
data1 (preferirei con questo solo mi sa che funziona solo con i db)
delle stringhe
tipo:  primidati, secondidati, terzidati ecc. Il numero delle stringhe
ovviamente e' uguale al
numero letto. Nell'interfaccia poi ho una serie di text box e devo
inserire alcuni caratteri (byte) letti dal file.
Quello che vorrei fare in pratica, e' che quando un utente clicca
sulla combo1 e sceglie ti tipo di dati da
visualizzare,  nelle texbox si trova i dati relativi alla scelta
effettuata sul combo. Io sono come sono organizzati
i dati sul file.. quelli che corrispondo ai vari tipi.
E praticamente un piccolo editor. Ovviamente puo' modificare i dati e
risalvarli
Solo so' come leggere il numero (non come convertirlo in decimale) ma
non come inserire poi le varie
stringhe nel combo e legare alcuni dati delle textbox alla selezione
del combo.
Il file ha una dimensione limitata .. pochi k.
Quello che sono riuscito a fare (come esempio per provare) e' aprire
il file come binary e leggere i dati in
questo modo:
Dim lNumFile As Long
Dim lPosizione As Long
Dim bo As Long
Dim sDatoDaLeggere As String
Dim valore As String
Dim i As Integer
 
lNumFile = FreeFile
Open "c:\windows\desktop\prova.hex" For Binary As lNumFile Len = 1
sDatoDaLeggere = " "
valore = ""
For i = 1 To 10
Get #lNumFile, i, sDatoDaLeggere
If i = 1 Then
If sDatoDaLeggere = "1" Then
Combo1.Text = "primo"  //tanto per provare a vedere cosa usciva :-)
End If
End If
 valore = valore + sDatoDaLeggere
 Next
 
seriale.Text = valore
Close #lNumFile
End Sub
(preso da vostri vecchi post) 
solo mi sembra che faccia abbastanza schifo ;-) secondo me dovrei
prima leggere il file in memoria e poi
inseririe i dati, non leggere con n for (per posizionarmi alla giusta
posizione) i dati direttamente dal file
e metterli nelle text.. solo non so come farlo. :-( mi potete dare una
mano ??
So che mi sono espresso male... ma non sapevo come fare meglio ;-)
saluti
                      Merlino

 sono circa 6 anni che non tocco il vb  :-(
[snip]
Prima di tutto qualche consiglio :)
1) usa dei subject decenti
2) sii meno prolisso: non si capisce bene cosa vuoi ottenere
3) spezza il tuo problemone in più thread, altrimenti ci si annoia a
risponderti :)
Rispondo a un paio di quesiti:
Per convertire un numero da hex in dec ti basta questo:
const iHex = &HC1A0
Dim iDec as Long
iDdec = Val("&H" & iHex)
Per tenere correlati i dati di una combo/listbox ti conviene tenerti un
array parallelo con corrispondenza a List1.ListIndex.
Altrimenti puoi usare List1.ItemData per legare un dato aggiuntivo alla tua
voce nella lista evitando l'array.
Tieni conto che questo non sarà più possibile con le prossime (
VB.NET
)
versioni di VB.
Ciao

 voce nella lista evitando l'array.
mmm mumble mumble ... potresti essere un attimino piu' chiaro.. sono
moltooo arrugginito in vb.... :-(
grazie cmq... 
      Merlino