Le meilleur moyen de lire un fichier binaire ?

Résolu
cs_Squallou Messages postés 249 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 15 juillet 2006 - 28 mai 2006 à 12:45
nguetho Messages postés 1 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 30 mai 2006 - 30 mai 2006 à 22:13
Salut tout le monde.

J'aimerais ouvrir un fichier pour exploiter son contenu (en octets pas en texte).

J'ai essayé avec un BlockRead dans une boucle mais ça met un peu de temps à charger (à peine deux secondes mais bon... -_-).

J'ai entendu parler de Stream, MemoryStream, FileStream. J'ai cherché de la doc mais j'arrive pas à piger et ça m'a embrouiller.

Admettons que je veuille afficher tous les octets d'un fichier binaire dans un TMemo, que je modifie ce TMemo et que j'enregistre son contenu en écrasant mon fichier.

Quel serait le moyen le plus pratique et rapide ?

Merci d'avance

22 réponses

cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
29 mai 2006 à 15:22
Au fait une petite précision:
Free est vraiment utile pour les champs d'une classe. Exemple:

TBuggyClass=class
FBuggyObject:TObject;

constructor Create;
destructor Destroy;
end;

constructor TBuggyClass.Create;
var
a:Integer;
begin
a:=0;
a:=1 div a; //<-erreur EDivisionByZero
FBuggyObject:=TObject.Create;
begin

constructor TBuggyClass.Destroy;
begin
FBuggyObject.Free;
inherited;
end;

Si tu utilises Destroy au lieu de Free pour FBuggyObject dans le destructeur, effectivement lors de toute création de ta classe TBuggyClass il y aura 2 exceptions: d'abord EDivisionByZero. Puis, étant donné que Delphi appelle Destroy lorsqu'une exception est déclenchée dans le constructeur, vu que FBuggyObject vaut nil, tu as une exception "Read of address 0x00000000".

Free marche bien dans ce cas là car contrairement aux variables, les champs d'un objet sont automatiquement initialisés à zéro par Delphi juste avant l'appel du constructeur (c'est la méthode InitInstance si mes souvenirs sont bons).
0
nguetho Messages postés 1 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 30 mai 2006
30 mai 2006 à 22:13
Bonjour!

j'ai un fichier cobol et je veux le lire et le traduire en delphi de façon à pouvoir obtenir des tables et etre capable d'y insérer des éléments mais je n'y arrive pas.

comment dois-je faire pour y arriver, à savoir le lire, traduire les champs et obtenir une table normale que je peux mettre dans une base de données?
0
Rejoignez-nous