IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Fview inversé ou FWrite un record


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Fview inversé ou FWrite un record
    Bonjour à toutes et à tous,

    L'utilisation de Fview combiner à une record est un petit bijou Dr.who , qui permet de partir d'une structure puis de la lire par la suite avec FView.

    Maintenant j'essai de faire l'inverse, j'ai une structure qui cette fois servira pour créer le fichier txt.
    Voilà où j'en suis dans mes recherche :

    Première essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Type
      TMember = Record
        Nom     : String[50];
        Prenom : String[30];
        Tel  : String[15];
        Fax : String[15];
      end;
     
    Members = Array[0..50] of TMember; // Juste pour le test
     
    procedure TForm1.Button4Click(Sender: TObject);
    var
      F : File of TMember;
      j : integer;
    begin
     AssignFile(F,'c:\members.dat') ;
     Rewrite(F) ;
     try
      for j:= 1 to 50 do
      begin
        Members[j].Nom     := 'Nom '+inttostr(j);
        Members[j].Prenom := 'Prenom '+inttostr(j);
        Members[j].Tel      :=  'Tel '+inttostr(j);
        Members[j].Fax     := 'Fax '+inttostr(j);
       Write(F, Members[j]);
      end;
     finally
      CloseFile(F) ;
     end;
    end;
    Mais la bizarement le fichier comporte toujours des caracèteres spéciaux en début de variable et je sais pas pourquoi !!!

    Deuxième essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Var
      MyStringList : TStringList;
    begin
      MyStringList := TStringList.Create;
      Try
        for i := 0 to 10 do
        Begin
        Members[j].Nom     := 'Nom '+inttostr(j);
        Members[j].Prenom := 'Prenom '+inttostr(j);
        Members[j].Tel      :=  'Tel '+inttostr(j);
        Members[j].Fax     := 'Fax '+inttostr(j);
        MyStringList.Add(Members[i].Name+' '+Members[i].eMail+' '+Members[i].Posts+' '+Members[i].FLigne);
        End;
        MyStringList.SaveToFile('c:\ttt.txt');
      Finally
        MyStringList.Free;
      End;
    Bon la le fichier est bien.

    Dans les 2 cas aucun ne respecte vraiment la structure, nom par exemple fais 50 de caractères et jamais il enregistre 50 (il faut que je le complete moi même par des blancs).

    Avant que je m'embarque dans un stringlist ou autre, connaissez-vous une autre méthode qui partirais d'une structure connu et qui créer un fichier de type text meilleur que mes 2 essai ?

    Merci.

  2. #2
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Re,

    Ou alors peut-on envoyr ou comment envoyer un Record dans un TStringlist ?

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    Tu pourra trouver :
    - ici dans la FAQ : http://delphi.developpez.com/faq/?pa...ringdanstsream
    - ceci :

    Pour écrire ou lire des données de longueur fixe dans un flux (TFileStream, TMemoryStream, bref toutes les classes dérivées de TStream), comme par exemple des types integer, double, boolean ou des types string de longueur fixe, ou même des types enregistrement (record) simples déclarés comme ceci :
    type TUnEnregistrement=record
    Nom,Prenom,Pseudo:string[20];
    Age:integer;
    InscritAuClubDVP:Boolean;
    end;
    ...
    var i:integer;
    d:double;
    b:boolean;
    s:string[10];

    Pour le reste voir le lien.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 515
    Points : 25 032
    Points
    25 032
    Par défaut
    Peut-être que la lecture de ces sujets, te donnera des idées, tu peux te passer de FView comme l'indique Gilbert Geyer, le TFileStream (ou BlockRead\Blockwrite) fait exactement la même chose, lire\écire un fichier via un Record, c'est juste la méthode la plus simple pour gérer du binaire !

    Surtout que tu oublie un truc, string[50] c'est un type Très spécial qui ajoute avant la longueur de la chaine, ce fameux caractère bizarre en début de ligne, utilise des Array[50] of AnsiChar à la place !
    Tu peux lire
    comment sauvegarder un tableau dynamique dans un fichier
    Enregistrement de record non finalisé
    affectation String et Record



    Pour la TStringList, tu veux avoir une list de record ?
    Si simple list, une TList et un Pointeur sur le Record
    Si List avec clé, une TStringList, et utilisation de Objects détourné avec un Pointeur sur le Record (ou mieux tu encapsule dans un objet)

    Quel composant pour présenter des enregistrements ?

    lecture/écriture dans un fichier texte
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    @Gilbert,

    Merci pour ton explication et ton lien, voilà ce que je test actuellement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    type
      TUnEnregistrement=record
        Nom,Prenom,Pseudo: Array[0..20] of AnsiChar;
    end;
     
    procedure TForm1.Button5Click(Sender: TObject);
    Var
      UnEnr:TUnEnregistrement;
      FStream : TStream;
      LChaine : Integer;
    begin
      FStream := TFileStream.Create('c:\essai.txt',fmCreate);
      Try
        UnEnr.Nom    := 'monnom';
        UnEnr.Prenom := 'Mon prenom';
        UnEnr.Pseudo := 'BuzzL''eclaire';
     
        LChaine := Length(UnEnr.Nom);
        FStream.Write(LChaine,Sizeof(LChaine));
        FStream.Write(unEnr.Nom[1],LChaine);
     
        LChaine := Length(UnEnr.Prenom);
        FStream.Write(LChaine,Sizeof(LChaine));
        FStream.Write(unEnr.Prenom[1],LChaine);
     
        LChaine := Length(UnEnr.Pseudo);
        FStream.Write(LChaine,Sizeof(LChaine));
        FStream.Write(unEnr.Pseudo[1],LChaine);
     
      Finally
        FStream.Free;
      End;
    end;
    Alors cela me créer le fichier mais dedans j'ai toujours mes satanées caractères bizard...

    Citation Envoyé par ShaiLeTroll Voir le message
    ...
    Surtout que tu oublie un truc, string[50] c'est un type Très spécial qui ajoute avant la longueur de la chaine, ce fameux caractère bizarre en début de ligne, utilise des Array[50] of AnsiChar à la place !
    Comme vue au dessus, cela ne change rien et même pire si j'essai de faire un inttostr(i); la j'ai incompatible type entre Array et String et malgrés diverse tentative de transtypage...

    Citation Envoyé par ShaiLeTroll Voir le message
    ...
    Pour la TStringList, tu veux avoir une list de record ?
    Si simple list, une TList et un Pointeur sur le Record
    Si List avec clé, une TStringList, et utilisation de Objects détourné avec un Pointeur sur le Record (ou mieux tu encapsule dans un objet)
    Tu veux dire qu'au lieu de faire un TStringlist préférer utiliser un TList ?

    Dans mon record je n'aurais QUE des Strings (ou array of char) mon enregistrement comporte environs 50 valeurs

    Je continue d'essayer de fair emarcher mon FStream...

    Merci pour votre aide.

  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut EDIT
    Re,

    J'ai changer de méthode j'ai fas cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    procedure TForm1.Button5Click(Sender: TObject);
    Var
      UnEnr:TUnEnregistrement;
      FStream : TStream;
      LChaine : Integer;
    begin
      FStream := TFileStream.Create('c:\essai.txt',fmCreate);
      Try
        UnEnr.Nom    := 'monnom';
        UnEnr.Prenom := 'Mon prenom';
        UnEnr.Pseudo := 'BuzzL''eclaire';
     
        LChaine := SizeOf(UnEnr);
        FStream.Write(LChaine,SizeOf(integer));
        FStream.Write(unEnr,LChaine);
     
      Finally
        FStream.Free;
      End;
    end;
    Bon j'ai plus de caractère bizard, mais j'ai un ? en début d'enregistrement !!!

    Décidement......


    [EDIT]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure TForm1.Button5Click(Sender: TObject);
    Var
      UnEnr:TUnEnregistrement;
      FStream : TStream;
      LChaine : Integer;
    begin
      FStream := TFileStream.Create('c:\essai.txt',fmCreate);
      Try
        UnEnr.Nom    := 'monnom';
        UnEnr.Prenom := 'Mon prenom';
        UnEnr.Pseudo := 'BuzzL''eclaire';
        UnEnr.SautLigne := #13+#10;
        LChaine := SizeOf(UnEnr);
        FStream.Write(LChaine,SizeOf(integer));
        FStream.Write(unEnr,LChaine);
    La j'ai plus de ? j'ai la lettre A en début d'enregistrement

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-Bonjour,

    Alors cela me créer le fichier mais dedans j'ai toujours mes satanées caractères bizard...
    Je continue d'essayer de faire marcher mon FStream...
    Puisque tu retiens le principe d'un Stream, voici un Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    unit uStream_Record;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ExtCtrls, Buttons;
     
    type
      TForm1 = class(TForm)
        Panel1: TPanel;
        GroupBox1: TGroupBox;
        Label4: TLabel;
        edChemFi: TEdit;
        GroupBox2: TGroupBox;
        Label1: TLabel;
        edNom: TEdit;
        Label2: TLabel;
        edPrenom: TEdit;
        Label3: TLabel;
        edAge: TEdit;
        chkBoxPresent: TCheckBox;
        bAjouterEnregistrement: TSpeedButton;
        bLire: TSpeedButton;
        edNBEnregistrements: TEdit;
        Label5: TLabel;
        edNumEnreg: TEdit;
        Label7: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure bAjouterEnregistrementClick(Sender: TObject);
        procedure bLireClick(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
      type TEnregistrement=record
              Nom,Prenom : string[30];
              Age        : integer;
              Present    : Boolean;
           end;
     
      var UnEnregistrement : TEnregistrement;
          TailleFi,NBEnregistrements,NumEnreg : Longint;
          FS : TFileStream;
     
    implementation
     
    {$R *.DFM}
     
    function  RepAppli : string; { renvoie Rep avec \ terminal }
    begin     RepAppli:=ExtractFilePath(Application.ExeName); end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin     edChemFi.text:=RepAppli+'_Essai.dat';
              if FileExists(edChemFi.text) then
              begin FS:=tFileStream.Create(edChemFi.text,fmOpenRead);
                    TailleFi:=FS.Size;
                    NBEnregistrements:=TailleFi div SizeOf(TEnregistrement);
                    edNBEnregistrements.text:=IntToStr(NBEnregistrements);
                    FS.Free;
              end else edNBEnregistrements.text:='0';
    end;
     
    procedure TForm1.bAjouterEnregistrementClick(Sender: TObject);
    begin     if Not FileExists(edChemFi.text)
              then FS:=tFileStream.Create(edChemFi.text,fmCreate)
              else FS:=tFileStream.Create(edChemFi.text,fmOpenWrite);
              with UnEnregistrement do begin
                   Nom    :=edNom.text;
                   Prenom :=edPrenom.text;
                   Age    :=StrToInt(edAge.text);
                   Present:=chkBoxPresent.Checked;
              end;
              TailleFi:=FS.Size;
              FS.Position:=TailleFi;
              FS.Write(UnEnregistrement,SizeOf(TEnregistrement));
              TailleFi:=FS.Size;
              NBEnregistrements:=TailleFi div SizeOf(TEnregistrement);
              edNBEnregistrements.text:=IntToStr(NBEnregistrements);
              FS.Free;
     
    end;
     
    procedure TForm1.bLireClick(Sender: TObject);
    begin     if Not FileExists(edChemFi.text) then EXIT;
              FS:=tFileStream.Create(edChemFi.text,fmOpenRead);
              NumEnreg:=StrToInt(edNumEnreg.text);
              FS.Position:=(NumEnreg-1)*SizeOf(TEnregistrement);
              FS.Read(UnEnregistrement,SizeOf(TEnregistrement));
              with UnEnregistrement do begin
                   edNom.text:=Nom;
                   edPrenom.text:=Prenom;
                   edAge.text:=IntToStr(Age);
                   chkBoxPresent.Checked:=Present;
              end;
              FS.Free;
    end;
     
    end.
    ... et je n'ai aucun caractère bizarre dans mes TEdit qui me servent ici aussi bien pour la saisie des enregistrements avant leur ajout que pour leur affichage en phase de lecture.

    Si tu veux un Zip, passes moi ton adresse e-mail par MP car mon quota de pièces jointes est quasiment plein. (faudra que je fasse un jour le ménage dans des vieilles discussions )

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    ....

    Si tu veux un Zip, passes moi ton adresse e-mail par MP car mon quota de pièces jointes est quasiment plein. (faudra que je fasse un jour le ménage dans des vieilles discussions )

    A+.
    Moi je l'ai fais LOL...

    Avant d'avoir la soluce toute faite, j'ai encore avancée voilà où j'en suis :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    type
      TUnEnregistrement = record
        Nom     : Array[0..5] of AnsiChar;
        Prenom  : Array[0..3] of AnsiChar;
        Pseudo  : Array[0..3] of AnsiChar;
        SautLigne : Array[0..1] of AnsiChar
    end;
     
     
    procedure TForm1.Button5Click(Sender: TObject);
    Var
      UnEnr:TUnEnregistrement;
      FStream : TStream;
      LChaine : Integer;
    begin
      FStream := TFileStream.Create('c:\essai.txt',fmCreate);
      Try
        UnEnr.Nom    := 'COYPP';
        UnEnr.Prenom := 'JUE';
        UnEnr.Pseudo := 'KKI';
        UnEnr.SautLigne := #13+#10;
        FStream.Write(unEnr,Sizeof(TUnEnregistrement));
     
        UnEnr.Nom    := 'JUDLE';
        UnEnr.Prenom := 'JUI';
        UnEnr.Pseudo := 'OLP';
        UnEnr.SautLigne := #13+#10;
        FStream.Write(unEnr,Sizeof(TUnEnregistrement));
     
      Finally
        FStream.Free;
      End;
    end;
    En fait là je n'ai plus de caractères bizard, par contre quand j'ouvre donc le fichie obtenu avec le Bloc-Note j'ai a chauqe fin de zone un espace et ^à je vois vraiment pas !!!!

    Où est ma bourde ?

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re,

    A mon avis ce qui déraille dans ton code c'est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FStream.Write(LChaine,SizeOf(integer)); <- ???
    FStream.Write(unEnr,LChaine);
    ... essaye de remplacer les deux lignes par :
    FStream.Write(unEnr,SizeOf(TUnEnregistrement));

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  10. #10
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    GRRRRRRRR, j'ai trouver mon espace de trop... a cause de mes Array je partait de zero... quel burne...

    Donc la sa marche trés bien.

    Je vais vois avec boucles et un essai en plus grand

    Merci bcp pour votre aide et vos exemples.

    C'est parti pour le Fstream (c'est pas mal en fait...)

    Sinon par rapport à ton exemple Gilbert si j'utilise un String[20] au lieu de Array [0..19] of AnsiChar tu a bien un caractère bizard, mais on le voit qu'avec un editeur de texte peut-etre, toi avec tes composants tu le voit pas car ta lecture fais son travail.

  11. #11
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    Re,

    A mon avis ce qui déraille dans ton code c'est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FStream.Write(LChaine,SizeOf(integer)); <- ???
    FStream.Write(unEnr,LChaine);
    ... essaye de remplacer les deux lignes par :
    FStream.Write(unEnr,SizeOf(TUnEnregistrement));

    A+.
    Oui tout a fait, c'est que j'avais ensuite corrigé, regarde dans le topic [EDIT] en base du topic.

    Merci Gilbert.

  12. #12
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    @Gilbert,

    Je suis désolé, mais des fois j'ecris trop vite et le temps qu'on me réponds, soit je modifie un topic soit j'en est déjà ecris 2... lokl

    C'est pour cela qu'on m'appel Buzz L'éclaire... toujours avant le tonnere.



    MErci encore

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re,

    Oups : nos messages se sont croisés.

    Sinon par rapport à ton exemple Gilbert si j'utilise un String[20] au lieu de Array [0..19] of AnsiChar tu a bien un caractère bizard, mais on le voit qu'avec un editeur de texte peut-etre, toi avec tes composants tu le voit pas car ta lecture fais son travail.
    ... ben dans mon cas quand j'ouvre mon fichier.dat sous Word mes Nom,Prenom : string[30]; s'y affichent avec un carré devant DUPONT suivi d'une série de ÿÿÿÿ en nombre égal à 30 - length(DUPONT)
    mais l'affichage dans les TEDit est très clean.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  14. #14
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    Re,

    Oups : nos messages se sont croisés.


    ... ben dans mon cas quand j'ouvre mon fichier.dat sous Word mes Nom,Prenom : string[30]; s'y affichent avec un carré devant DUPONT suivi d'une série de ÿÿÿÿ en nombre égal à 30 - length(DUPONT)
    mais l'affichage dans les TEDit est très clean.

    A+.
    D'où ce que disais le trollien (ShaiLeTroll ) d'utilser un array of AnsiChar, car moi mon fichier sert à être lu par la suite sur d'autre log.

  15. #15
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re,

    Ok, vu, l'essentiel est que ça marche chez toi.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. FView ou Record sur fichier avec ligne différente
    Par BuzzLeclaire dans le forum Débuter
    Réponses: 13
    Dernier message: 18/03/2010, 12h35
  2. Stocker un record dans un fichier
    Par ushu dans le forum Langage
    Réponses: 7
    Dernier message: 13/12/2002, 15h51
  3. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 17h10
  4. Record et TObject
    Par spirale dans le forum Langage
    Réponses: 2
    Dernier message: 13/09/2002, 12h06
  5. fwrite et fread
    Par bohemianvirtual dans le forum C
    Réponses: 5
    Dernier message: 05/06/2002, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo