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 :

fichier journal des télécopies olitec


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut fichier journal des télécopies olitec
    Bonjour, à tous

    je débute....

    Je voudrais lire les informations sur le journal des télécopies olitec
    le fichier est : EMIS.JRN

    le fichier ressemble à ca en hexa:

    00000000 00 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 . .............
    00000010 00 00 00 00 00 00 00 47 41 42 59 20 26 20 53 45 .......GABY & SE
    00000020 52 47 45 00 00 00 00 00 00 00 00 00 00 00 00 00 RGE.............
    00000030 00 00 00 00 00 00 00 00 4C 49 56 52 41 20 46 52 ........LIVRA FR
    00000040 41 4E 43 45 00 00 00 00 00 00 00 00 00 00 00 00 ANCE............
    00000050 00 00 00 00 00 00 00 00 00 32 30 2F 30 34 2F 30 .........20/04/0
    00000060 36 00 00 32 31 3A 33 31 3A 32 31 00 00 4D 53 47 6..21:31:21..MSG
    00000070 30 30 30 31 2E 4F 46 58 00 00 30 35 35 36 33 35 0001.OFX..055635
    00000080 36 30 30 31 00 00 00 00 00 00 00 00 00 00 00 00 6001............
    00000090 00 00 01 00 30 30 3A 30 30 3A 30 30 00 00 F5 01 ....00:00:00....
    000000A0 00 00 00 00 00 00 00 00 59 01 32 30 2F 30 34 2F ........Y.20/04/
    000000B0 30 36 00 00 32 31 3A 33 31 3A 32 31 00 00 00 04 06..21:31:21....
    000000C0 00 00 00 00 4F 6C 69 66 61 78 20 2D 20 4D 65 73 ....Olifax - Mes
    000000D0 73 61 67 65 00 00 00 00 00 00 00 00 00 00 00 00 sage............
    000000E0 00 00 00 19 60 48 44 00 00 00 00 3D 32 00 00 01 ....`HD....=2...
    000000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000110 00 00 00 00 00 00 00 00 00 00 00 00 20 20 00 00 ............ ..
    00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000130 00 00 52 4F 42 49 4E 20 46 41 52 43 59 00 00 00 ..ROBIN FARCY...
    00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000150 00 00 00 43 53 52 44 00 20 46 52 41 4E 43 45 00 ...CSRD. FRANCE.
    00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000170 00 00 00 00 32 31 2F 30 34 2F 30 36 00 00 31 30 ....21/04/06..10
    00000180 3A 35 34 3A 32 33 00 00 4D 53 47 30 30 30 32 2E :54:23..MSG0002.
    00000190 4F 46 58 00 00 30 35 35 37 38 30 30 36 37 36 00 OFX..0557800676.
    000001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 30 ...............0
    000001B0 30 3A 30 30 3A 30 30 00 00 F5 01 00 00 00 00 00 0:00:00.........
    000001C0 00 00 00 59 01 32 31 2F 30 34 2F 30 36 00 00 31 ...Y.21/04/06..1
    000001D0 30 3A 35 34 3A 32 33 00 00 00 04 00 00 00 00 4F 0:54:23........O
    000001E0 6C 69 66 61 78 20 2D 20 4D 65 73 73 61 67 65 00 lifax - Message.
    000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4F 1C ..............O.
    00000200 49 44 00 00 00 00 CF 31 00 00 01 00 00 00 00 00 ID.....1........
    00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000230 00 00 00 00 00 00 ......
    J'ai essayé de le lire en fichier de type record, mais ca ne marche pas:


    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
     
    procedure TForm1.Button2Click(Sender: TObject);
    type TAdresse =Packed Record
    rien:string[22];
    Nom:string[33];
    Societe:string[33];
    Date:string[10];
    Heure:string[10];
    fichier_olitec:string[13];
    num_fax:string[26];
    prog_heure:string[20];
    lettre:string[2];
    date_envoi:string[10];
    heure_envoi:string[16];
    prog_envoi:string[33];
    lettre_x:string[7];
    fin:string[52];
    end;
    var
    Adresse: TAdresse;
    FichierAdresse:File of TAdresse;
    begin
    Memo1.Lines.Clear;
    AssignFile(FichierAdresse,'c:\EMIS.JRN'); // on associe la variable FichierAdresse à l'emplacement physique du fichier sur le disque dur.
    Reset(FichierAdresse);//on ouvre le fichier
    While not EOF(FichierAdresse) do // tant que l'on est pas arrivé à la fin du fichier
    begin
    read(FichierAdresse,Adresse); //lecture d'un enregistrement
    Memo1.Lines.Add('Nom:'+Adresse.Nom+'Societe:'+Adresse.Societe);
    end;
    CloseFile(FichierAdresse);// on ferme : on vide la mémoire tampon et on libère le fichier
    end;

    avez-vous un idée..

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    merci d'utiliser les balises Quote ou code.
    Citation Envoyé par nenecg
    mais ca ne marche pas:
    Mais encore ?

    Le fichier contient des chaînes de caractères issues du C à prioris, donc ton record basé sur des string ne peut convenir.

    Il te faut connaitre la taille d'un enregistrement puis parser chaque champ en utilisant par exemple un type :
    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
     
    const 
     cstTailleEntete = x;
     cstTailleNom = y;
    ...
     
    type
      TZone= Record
       Buffer :Array of char[0..tailleRecord];
      end;
     
     ZoneEntete : Array of char[0..cstTailleEntete];
     ZoneNom : Array of char[0..cstTailleNom];
     
     TAdresse= ...
    Ensuite tu fait pointer un pchar sur chaque zone contenu dans le buffer puis tu l'assignes au record TAdresse.

    voilà qq remarques rapide mais il y a bien sûr d'autre approche.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci je vais essayer

    Je reviens plus tard pour vous donnez le résultat

Discussions similaires

  1. vider le journal des transactions
    Par coucoucmoi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2004, 09h21
  2. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41
  3. Fichier log des requêtes d'une bdd
    Par Sub0 dans le forum Administration
    Réponses: 4
    Dernier message: 22/03/2004, 14h12
  4. Réponses: 2
    Dernier message: 26/02/2003, 15h18
  5. [VB6] [Fichier] Enregistrer des variables de structure
    Par de.bo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2002, 11h09

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