@Top Fuel e @VuottE' proprio in questi due post a seguire che spiego l'uso delle stringhe...
Dovuto al fatto che non capisco niente di stream...
Scusate se riprendo la discussione con apparente ritardo ma ero rimasto in attesa di eventuali vostri nuovi post.
Io fin'ora se dovevo memorizzare dei dati in una mia applicazione ricorrevo ad un database.
Sono pertanto digiuno di quanto qui voi siete a discutere e anticipo le mie scuse per eventuali castronerie.
...
Quindi se fosse scritto su un file di testo sarebbe come una roba così:...
...
...
Scusate tutti quanti ma a causa della niubbaggine stento a ben spiegare quello che intendo dire.
Io intendevo più o meno questo (rimanendo in tema VB):
...
… intendevo riferirmi sempre a “se fosse un file di testo”...
...
1- Non è obbligatorio che tutti i campi debbano essere riempiti, si può anche lasciarli vuoti.
Ma non sei stato tu a parlare di un modo per poter scrivere cose più lunghe senza dover intervenire su quanto scritto dopo? Il fatto che poi io non ne abbia tenuto conto nel codice non inficia l'esempio che potrebbe essere sviluppato.
Si potrebbe leggere dato per dato, inteso come campo, se ci sono cambiamenti ecc... Bada bene non sto parlando di codice efficiente ma di possibilità.
Ribadisco il mio è un esempio con stringhe per spiegare in pratica cosa chiedevo in aiuto.
Comunque mi rimane difficile capire poi come fare a utilizzare una forma di split se non usiamo le stringhe.
2- Per eliminare un singolo record non c'è bisogno di riscrivere tutto il file, basta spostare di una posizione indietro tutti i record seguenti.
Magari mi si spiegasse come fare!
3- Perchè non hai usato una struttura?
A parte che io di strutture ne capisco punto, comunque ti ha già risposto
vuottSarebbe molto gradita versione aggiornata e corretta del mio esempio
Per il resto direi un buon lavoro.
Grazie lo stesso, anche se è una pietosa bugia
3- Perchè non hai usato una struttura?
...effettivamente questa è una domanda giusta e che è sorta anche in me.
Ma forse la risposta sta nel fatto che Gianluigi utilizza solo variabili di tipo Stringa, quindi di tipo omogeneo; i valori delle quali vengono poi raccolti insieme da un vettore di tipo Stringa:
Però è proprio qua che mi sorge un'altra domanda per lui:
Perché utilizzare esclusivamente variabili di tipo Stringa ?
Se per esempio, come nel suo programma, io devo inserire 10 valori "età", questi naturamente potranno essere rappresentati ciascuno da un solo byte.
Pertanto, si potrebbe utilizzare per ciascun valore dell'età una variabile di tipo Byte, ...la quale occupa 1 byte di memoria.
La sola variabile Stringa invece occupa ben 8 byte !!!
Spiegazione già data circa l'uso delle stringhe a parte, cosa intendi parlando di 8 byte? Le stringhe (al di sotto delle 127 lettere) non occupano un byte ogni carattere?
Intendi dire che se si utilizzasse una struttura si potrebbe usare lo split limitatamente alle due stringhe in quanto poi età e booleano occuperebbero un solo byte ciascuno?
Sarebbe una cosa del genere:
Public Struct mioRecord
sNome as String ' 19 + 1 (tab) con supporto di una funzione.
sCognome as String ' Idem
byEta as Byte ' 1 byte
bSposi as Boolean ' 1 byte
End Struct
Per un totale di 42 byte invece di 46? Ma si può usare split nelle strutture? A me i tipi creati dall'utente sono sempre apparsi inutili (evidentemente non li capisco proprio).
Poi ci si sposta sempre con Seek di 42 in 42?
Grazie dell'attenzione.