• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Far comunicare VB e DB
#7
Ti sbagli, è possibilissimo. Ricorda che con più byte è possibile salvare qualsiasi tipo di cosa riutilizzando la rappresentazione dei valori nella memoria (esempio: un intero è formato da 4 byte, basta ricalcolarci e scriverli). Però ti consiglio di evitare questo tipo di cose con DBP perchè diciamo che è un pò complesso per quanto riguarda la scrittura/lettura e quindi ti consiglio di fare tutto tramite stringhe. Eccoti il modulo che utilizzo io per DarkSv3Engine per leggere un file di testo (o qualsiasi file) riga per riga. Il separatore è "chr(13)+chr(10)"

Codice:
Rem ***** Included Source File *****

REMSTART
------------------------------------------------------------
Autore: Sconosciuto.
Modulo: Entita.db
------------------------------------------------------------
Questo modulo contiene i metodi e le istruzioni standard
per la gestione delle stringhe.
------------------------------------------------------------    
I comandi di questo modulo non hanno nessuna specifica perchè
prendono il nome dal tipo di azione che eseguono.
------------------------------------------------------------    
REMEND

//------------------------------------------------------------    
// Lettura di un testo da un file
// Autore: Mauro Leone
//------------------------------------------------------------    
function LeggiFile$(filename$)
fileNum# = 1
result$ = ""
// Apre il file
open to read fileNum#, filename$
// Se è riuscito ad aprirlo...
if file open(fileNum#)=1
    // ... leggilo fino alla fine
    while file end(fileNum#)=0
    newline$ = ""
    read string  fileNum#,newline$
        // Se la riga letta non è una riga di commento o è una riga <= 2 caratteri
        if left$(newline$,2) <> "//" and len(newline$) > 2
        result$ = result$ + newline$ + chr$(13)+chr$(10)
        endif
    endwhile
endif
// Chiude il file
close file fileNum#
endfunction result$


//------------------------------------------------------------    
// La funzione Replace
//------------------------------------------------------------    
function Replace$(s$,c$,nc$)
for n=1 to len(s$)
   tc$=mid$(s$,n)
   if tc$=c$
      tc$=nc$
   endif
   ns$=ns$+tc$
next
endfunction ns$

//------------------------------------------------------------    
// La funzione Piece$ permette di prendere una parte della stringa.
// E' simile a split.
//------------------------------------------------------------    
function Piece$(s$,entry,char$)

For n=1 To entry-1
   p=instr(s$,char$)
   If p
      s$=Right$(s$,Len(s$)-p)
      Else
      exitfunction ""
      EndIf
   Next
p=Instr(s$,char$)
If p<1
   Else
   s$=Left$(s$,p-1)
   EndIf
endfunction s$

//------------------------------------------------------------    
// Lette un valore da un testo nel formato:
// findname$=valore
//------------------------------------------------------------    
function KeyValue$(properties$,findname$,defaultvalue$)
findname$=lower$(findname$)
repeat
   p=Instr(properties$,chr$(13)+chr$(10))
   if p>0
      keypair$=left$(properties$,p-1)
      properties$=right$(properties$,len(properties$)-p-1)
      else
      keypair$=properties$
      properties$=""
      endif
   p=instr(keypair$,"=")
   if p=0
      exitfunction ""
      else
      name$=left$(keypair$,p-1)
      value$=right$(keypair$,len(keypair$)-p)
      if lower$(name$)=findname$ then exitfunction value$
      endif
   until properties$=""
endfunction defaultvalue$

//------------------------------------------------------------    
// Cerca la posizione di un stringa/carattere in una data stringa
//------------------------------------------------------------
function Instr(searchstring$,findstring$)
l1=len(searchstring$)
l2=len(findstring$)
dl=l1-l2
if dl<l then exitfunction 0
for n=0 to dl
   endp=n+l2
   s$=right$(searchstring$,l1-n)
   s$=left$(s$,endp-n)
   if s$=findstring$ then exitfunction n+1
   next n
endfunction 0

Adesso per leggere il file richiami semplicemente la funzione LeggiFile$(nome del file). Il nome è relativo alla directory del gioco ovviamente.
Codice:
dati_giocatore$ = LeggiFile$("player1.def")
[code]

Adesso, supponendo che il file "player1.def" sia scritto così:
[code]
// ===============================
// File di definizione per il primo giocatore
// ===============================
modello=uomo.x
nome=Rick
attacco=15
difesa=12

puoi leggere i vari dati utilizzando la funzione KeyValue$ Smile il primo parametro è il testo da cui leggere la variabile, il secondo è il nome della variabile e il terzo è il valore di default nel caso la variabile non sia stata descritta nel file. Stai attento però che questa funzione è pignola: non ammette spazi prima e dopo del "=" Wink
Codice:
// dati_giocatore$ è la variabile che contiene il testo letto
modello$  = KeyValue$(dati_giocatore$, "modello", "empty.x")
nome$  = KeyValue$(dati_giocatore$, "nome", "Giocatore1")
attacco#  = val(KeyValue$(dati_giocatore$, "attacco", "10"))
difesa#  = val(KeyValue$(dati_giocatore$, "difesa", "10"))

Per quanto riguarda il VB.net 2005 è semplice:
Supponendo di avere queste variabili che si modificano nell'editor:
Codice:
dim nome_modello as string = "uomo.x"
dim nome as string = "Rick"
dim att as integer = 15
dim dif as integer = 12

Per il salvataggio farò semplicemente:
Codice:
dim scrittore As StreamWriter = New StreamWriter("player1.txt")
scrittore.WriteLine("modello=" & nome_modello )
scrittore.WriteLine("nome=" & nome)
scrittore.WriteLine("attacco=" & att )
scrittore.WriteLine("difesa=" & dif)
scrittore.Close ' Non mi ricordo se è close il comando per chiudere lo stream in questo momento xD
 
Rispondi
  


Messaggi in questa discussione
Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 11:23 AM
RE: Far comunicare VB e DB - da x4ndr3a - 08-01-2011, 11:36 AM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 12:40 PM
RE: Far comunicare VB e DB - da NecroRayder - 08-01-2011, 01:15 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 01:28 PM
RE: Far comunicare VB e DB - da NecroRayder - 08-01-2011, 01:36 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 02:15 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 03:00 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 03:50 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 04:23 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 04:31 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 04:38 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 04:44 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 04:54 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 05:15 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 05:27 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 05:56 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 05:56 PM
RE: Far comunicare VB e DB - da x4ndr3a - 08-01-2011, 05:58 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 06:06 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 06:06 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 06:07 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 06:33 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 06:50 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 08-01-2011, 07:15 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 08-01-2011, 07:23 PM
RE: Far comunicare VB e DB - da NecroRayder - 08-01-2011, 07:49 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 09-01-2011, 10:00 AM
RE: Far comunicare VB e DB - da NecroRayder - 09-01-2011, 12:38 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 09-01-2011, 01:11 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 09-01-2011, 01:45 PM
RE: Far comunicare VB e DB - da NecroRayder - 09-01-2011, 03:16 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 09-01-2011, 03:16 PM
RE: Far comunicare VB e DB - da NecroRayder - 09-01-2011, 03:30 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 09-01-2011, 04:11 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 09-01-2011, 04:11 PM
RE: Far comunicare VB e DB - da NecroRayder - 09-01-2011, 04:19 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 09-01-2011, 04:20 PM
RE: Far comunicare VB e DB - da NecroRayder - 09-01-2011, 04:34 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 09-01-2011, 06:08 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 09-01-2011, 06:45 PM
RE: Far comunicare VB e DB - da NecroRayder - 09-01-2011, 07:33 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 09-01-2011, 08:27 PM
RE: Far comunicare VB e DB - da NecroRayder - 09-01-2011, 08:43 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 10-01-2011, 08:29 AM
RE: Far comunicare VB e DB - da NecroRayder - 10-01-2011, 04:50 PM
RE: Far comunicare VB e DB - da Jonathan Archer - 14-01-2011, 08:44 AM
RE: Far comunicare VB e DB - da Zapetino - 14-01-2011, 11:26 AM
RE: Far comunicare VB e DB - da Jonathan Archer - 16-01-2011, 07:38 PM
RE: Far comunicare VB e DB - da Sweet Vengeance - 17-01-2011, 12:08 AM

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  VB.NET Nascondere applicazione dal mixer di sistema VORTEX 1 1,606 16-10-2013, 08:20 PM
Ultimo messaggio: alessiobb3b
  [VB.net] Sprite in DirectX 9 VORTEX 4 1,958 03-12-2012, 08:37 PM
Ultimo messaggio: VORTEX
  [VB.NET] Intercettare la pressione di un tasto MickeyCrashRayman 6 5,022 30-08-2012, 03:39 PM
Ultimo messaggio: MickeyCrashRayman

Vai al forum:


Browsing: 1 Ospite(i)