comment sauvegarder les données

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
france

comment sauvegarder les données

Message par france »

je ne sais pas comment sauvegarder les données d'un fichier

je m'explique,

si par exemple on cree un repertoire, comment faire en sorte que l'ordinateur garde les noms renrés en memoire
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Heu, désolé, j'ai rien compris. un exemple de ce que tu souhaites faire serait surement plus compréhensible ?

tu veux choisir un nom de fichier ou un de dossier et l'utiliser pour créer un fichier, c'est ça ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
france

Message par france »

:oops:

admettons qu'on fasse un repertoire telephonique.

une fois qu'on a rentre tous les noms et les numeros de telephone,

comment faire pour que l'ordinateur les garde en memoire.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

pour l'instant je fais comme ça :

Code : Tout sélectionner

Structure Parametres
   Nom.s
   Telephone.s
EndStructure

NewList Repertoire.Parametres()   

;fabrique un répertoire
For a = 1 To 3
   Read Nom$
   Read Tel$
   AddElement(Repertoire())
   Repertoire()\Nom = Nom$
   Repertoire()\Telephone = Tel$
Next a

;enregistre le repertoire
fichier$ = "RepertoireBidon.dat"
If CreateFile(0,fichier$)
   ForEach Repertoire()
      WriteStringN(Repertoire()\Nom)
      WriteStringN(Repertoire()\Telephone)
   Next
   CloseFile(0)
EndIf

;efface le repertoire
ClearList(Repertoire())

;lecture du repertoire
If OpenFile(0,fichier$)
   While Eof(0) = 0 
      AddElement(Repertoire())
      Repertoire()\Nom = ReadString()
      Repertoire()\Telephone = ReadString()
   Wend
   CloseFile(0)
EndIf

;affiche le résultat
ForEach Repertoire()
   Debug Repertoire()\Nom
   Debug Repertoire()\Telephone
Next
   
DataSection
Data.s "Toto","03.04.05.06"
Data.s "Tutu","23.23.56.26"
Data.s "Titi","43.98.54.71"
EndDataSection
Dans CodeArchiv , j'ai vu ça , c'est plus efficace ,je vais étudier ça pour le mettre en pratique :)

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2479&highlight=
; Author: NicTheQuick
; Date: 06. October 2003

; Save linked list in a file...

; LinkedList in Datei speichern:
; Ich habe eine Liste die ich durch eine Structur definiert habe. Wie kann ich diese in eine Datei speichern und wieder auslesen. 


Structure ValueStructure 
  Long.l 
  Word.l 
  Byte.l 
  Float.f 
EndStructure 

Structure StringStructure 
  String1.s 
  String2.s 
  String3.s 
EndStructure 

NewList ValueLinkedList.ValueStructure() 
NewList StringLinkedList.StringStructure() 

Enumeration 
  #SaveFile 
EndEnumeration 

Procedure SaveLinkedList_Value(*FirstElement, StructureSize.l, File.s) 
  Protected *PosLL 
  If CreateFile(#SaveFile, File) 
    *PosLL = *FirstElement 
    Repeat 
      WriteData(*PosLL, StructureSize) 
      *PosLL = PeekL(*PosLL - 8) + 8 
    Until *PosLL = 8 
    CloseFile(#SaveFile) 
  EndIf 
EndProcedure 
Procedure LoadLinkedList_Value(StructureSize.l, File.s) 
  If ReadFile(#SaveFile, File) 
    ClearList(ValueLinkedList()) 
    While Eof(#SaveFile) = 0 
      AddElement(ValueLinkedList()) 
      ReadData(@ValueLinkedList(), StructureSize) 
    Wend 
    CloseFile(#SaveFile) 
  EndIf 
EndProcedure 

Procedure SaveLinkedList_String(*FirstElement, StructureSize.l, File.s) 
  Protected *PosLL, StringPos.l, StringLength.l, StringAddress.l 
  If CreateFile(#SaveFile, File) 
    *PosLL = *FirstElement 
    Repeat 
      For StringPos = 0 To StructureSize - 1 Step 4 
        StringAddress = PeekL(*PosLL + StringPos) 
        StringLength = Len(PeekS(StringAddress)) 
        WriteLong(StringLength) 
        WriteData(StringAddress, StringLength) 
      Next 
      *PosLL = PeekL(*PosLL - 8) + 8 
    Until *PosLL = 8 
    CloseFile(#SaveFile) 
  EndIf 
EndProcedure 
Procedure LoadLinkedList_String(File.s) 
  Protected StringPos.l, StringLength.l 
  If ReadFile(#SaveFile, File) 
    ClearList(StringLinkedList()) 
    While Eof(#SaveFile) = 0 
      AddElement(StringLinkedList()) 
      For StringPos = 1 To 3 
        StringLength = ReadLong() 
        Select StringPos 
          Case 1 
            StringLinkedList()\String1 = Space(StringLength) 
            ReadData(@StringLinkedList()\String1, StringLength) 
          Case 2 
            StringLinkedList()\String2 = Space(StringLength) 
            ReadData(@StringLinkedList()\String2, StringLength) 
          Case 3 
            StringLinkedList()\String3 = Space(StringLength) 
            ReadData(@StringLinkedList()\String3, StringLength) 
        EndSelect 
      Next 
    Wend 
    CloseFile(#SaveFile) 
  EndIf 
EndProcedure 

;- Values 
For a.l = 0 To 200 Step 4 
  AddElement(ValueLinkedList()) 
  ValueLinkedList()\Long = a 
  ValueLinkedList()\Word = a + 1 
  ValueLinkedList()\Byte = a + 2 
  ValueLinkedList()\Float = a / 10 
Next 
FirstElement(ValueLinkedList()) 
SaveLinkedList_Value(@ValueLinkedList(), SizeOf(ValueStructure), "tempvalues.dat") 

LoadLinkedList_Value(SizeOf(ValueStructure), "tempvalues.dat") 

ResetList(ValueLinkedList()) 
ForEach ValueLinkedList() 
  Debug ValueLinkedList()\Float 
Next 

;- Strings 

For a.l = 0 To 200 Step 3 
  AddElement(StringLinkedList()) 
  StringLinkedList()\String1 = "abc: " + Str(a) 
  StringLinkedList()\String2 = Str(a + 1) + "abcdefghijklmnopqrstuvwxyz" 
  StringLinkedList()\String3 = "Diese Strings wurden alle gespeichert" 
Next 
FirstElement(StringLinkedList()) 
SaveLinkedList_String(@StringLinkedList(), SizeOf(StringStructure), "tempstrings.dat") 

ClearList(StringLinkedList()) 
LoadLinkedList_String("tempstrings.dat") 

ResetList(StringLinkedList()) 
ForEach StringLinkedList() 
  Debug StringLinkedList()\String2 
Next
CORBASE
Messages : 96
Inscription : mar. 24/févr./2004 14:06

Message par CORBASE »

Bah, pour faire un répertoire télép^honique, le mieux reste la base de donnée ..

Sinon, pour le mettre dans le fichier texte ou .dat, le mieux c'est l'exemple de Comtois :p

Comme je débute aussi, je te dirais de prendre les exemples fournis avec PB, surtout celui des Files qui est très bien fait :p
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

L'exemple de codearchiv marche très très bien :d
Répondre