Brava Martina90 vedo che ti piace smanettare... bravi i ragazzi che ti aiutano... insomma bravi tutti.
Se, come dici, conosci bene il VB6, io ti consiglio di passare senz'altro a SQLite.
Puoi far un parallelo; quello con con ADO usualmente chiamavi Connection qui si chiama SQL
da dichiararsi generalmente in Process_GlobalsB4X:Dim dbIAH As SQL ' come cnn del Microsoft ADO
Quello che con ADO chiamavi recordset qui si chiama cursor.
da dichiararsi dove è necessario (anche in una Sub)B4X:Dim rs As Cursor
Il recordset lo popoli con una istruzione
Di diverso, in B4A, c'è l'istruzione PositionB4X:rs = dbIAH.ExecQuery(Criterio)
senza la quale NON ti puoi posizionare al record N. 33 del recordset rs.B4X:rs.Position = 33
Poi ci sono i corrispondenti degli oggetti Command
Non c'è AddNew, sostituito da una istruzione "INSERT INTO ..."B4X:dbIAH.ExecnonQuery(Criterio)
Se vuoi stringhe di lunghezza fissa puoi utilizzare la libreria StringFunction nella quale troverai moltissime istruzioni molto molto simili a quelle del VB6 (che Dio l'abbia in gloria e lo conservi nei nostri HD in secula seculorum).
Esatto. Usavo i file binari. Sono sempre Martina ma per un discorso di account legato all'acquisto della licenza fatto con Paypal di mio zio ho dovuto prendere il suo nick. :-( Non so se ora si può tornare al mio nick vero ma penso di no. Pazienza.
Tornando al mio problema mi sto facendo aiutare a fatica da Erel (io non sono per niente brava in inglese). Per ora sono riuscita con un suo pezzo di codice a scrivere un piccolo file ma non riesco a trovare dove l'ha messo nell'S4 e non ho capito molto di quello che c'è, almeno non del tutto. Era tanto bello VB6 :-(
Sto diventando matta. Sto B4A fa proprio schifo. Ma com'è possibile?
Dichiaro due array di un tipo definito da me:
Dim ClaS(19) as Classifica ' Nuova classifica
Dim ClasVec(19) as Classifica ' Vecchia classifica
poi in una sub in base ai risultati aggiorno la ClaS facendo assegnazioni del tipo
ClaS(2).Punti=ClasVec(2).Punti+2
com'è possibile che prima di uscire dalla sub senza che sia stato assegnato un valore a ClasVec questo si ritrovi ad essere uguale a ClaS?
Cioè, in base all'assegnazione d'esempio fatta sopra se ClasVec(2).Punti valeva 24 dopo l'assegnazione ClaS(2).Punti dovrebbe essere 26 e ClasVec(2).Punti rimanere 24, invece mi ritrovo che anche ClasVec(2).Punti vale 26.
Non ditemi che non devo usare gli array ma le liste etc. etc. perché non ha senso. Il programma dovrebbe funzionare così.
No, quest'ultima l'ho capita. E' sempre un pasticcio combinato dal primo problema posto.
varA = ClaS(2).Punti
log("varA = " & varA)
varB = ClasVec(2).Punti
log("varB = " & varB)
VarA = VarB + 2
log("varA = " & varA)
Niente, ho già perso troppo tempo. Sai cosa faccio? Invece di caricare la classifica vecchia una volta sola all'inizio la carico da file binario ogni volta che entro nella sub che fa la nuova classifica. Il discorso è che dentro questa sub ci si entra parecchie volte, pazienza, tanto lavora lo smartphone, mica io![]()
Sì, ma non è che debba essere una scheggia. Comunque Lunedì scrivo una mini app con le caratteristiche uguali alla mia in modo che si veda l'errore presunto che fa lei o io.