Ouvrir un fichier écrit en ASCII

Résolu
Signaler
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006
-
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006
-
Bonjour à tous et toutes,

Voilà, il se trouve que j'ai fichier écrit en ASCII mais je suis comme un chien qui aurait pondu un oeuf comment faire pour le déchiffer à l'ouverture?

S i qq à une idée merci.

To be or not to be

19 réponses

Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012

bon j'ai peut-être rien compris mais il me semble qu'il veut ouvrir un fichier binaire("Ascii") dans ce cas il est peu probable d'avoir un resultat satisfaisant avec un TMemo !!! un conseil prends le HexEdit c'est un Editeur Hexa dont voici le lien:
http://www.mirkes.de/en/delphi/vcls/hexedit.php
Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012

biensûr il est freeware avec source !!!
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Tu aurais pu être un peu précis dans ta question.
Tu veux l'ouvrir dans un TMemo, un TRichEdit, ou le lire à partir d'un TFileStream ou des méthodes Pascal ?
En gros, dis nous ce que tu veux en faire de ce fichier et on te dira comme y arriver.

++

Si tu ne te plantes pas ......
tu ne pousseras jamais
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Ok ça roules.

Il s'agit d'un fichier que je voudrai ouvrir tout simplement dans un fichier texte pour connaître les informations qu'il comporte.

A plus

To be or not to be
Messages postés
3827
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
16 décembre 2021
46
Salut,
donc tu ne sais pas sur quel support tu veux le visionner.
Si c'est ça tu mets un TMemo sur ta Form et un TBoutton en dessous et dans le code du bouton tu écris ceci:

procedure TForm1.Button1Click(Sender : TObject);
Begin
  Memo1.Lines.Clear; // On efface le contenu du Memo
  Memo1.Lines.LoadFromFile('C:\Mon_Rep\Mon_Firchier.txt'); // et on charge le Fichier à Visionner
End;

<hr> n'oubliez pas de cliquer sur Réponse Acceptée
si elle vous convient

<hr>
@+
Cirec
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Alors, dans ce cas, tu peux passer par un TStringList.

Un petit exemple ne fait pas de mal.
<hr size= "2" width="100%"> var
  S: TStringList;
  I: Integer;
begin
  S : = TStringList.Create;
  S.LoadFromFile('C:\\Mon Fichier.txt');
  for I := 0 to S.Count - 1 do
  begin
//    Traitement de la ligne I qui est accessible par S[I]
//    Par exemple :
    if S[I] = 'Say Hello'then
      ShowMessage('Hello')
    else if S[I] = 'Say Bye' then
      ShowMessage('Good bye!');
  end;
  S.Free;  // Ne pas oublier de libérer le fichier !!!!
end;
<hr size ="2" width="100%"> 
@ +
Florent

Si tu ne te plantes pas ......
tu ne pousseras jamais
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Ah tiens, Cirec, tu as eu une autre approche. (ton message n'était pas affiché quand j'ai rédigé le mien)
Tout dépend de ce qu'il appelle par "connaître les informations qu'il comporte"
Pour moi, ça voulait dire lire le fichier en interne et non pas le montrer à l'utilisateur.

Au moins, il aura eu deux versions: on verra bien quand il reviendra.

++

Si tu ne te plantes pas ......
tu ne pousseras jamais
Messages postés
3827
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
16 décembre 2021
46
Salut Florenth,
ton message n'était pas affiché quand j'ai rédigé le mien
C'est pas un souci, moi ça m'arrive souvent et je crois tous ceux qui répondent aux questions passent par là tôt où tard

Et comme la question de Bierataise était pas très claire, j'ai penché pour la démo du Mémo
elle permet la visualisation et la modification
et il y a encore la version : "Var F: File of ... où TextFile" BlockRead...

et c'est ce qui me plait, entre autres choses, c'est qu'il y a souvent plusieurs solutions à un "problème"
<hr>
@+
Cirec
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
"C'est pas un souci, moi ça m'arrive souvent et je crois tous ceux qui répondent aux questions passent par là tôt où tard"
Je le sais bien; c'est pas la première fois que ça m'arrive.

Moi aussi j'aime bien qu'il y ait plusieurs solutions à un problème.
Mais la solution du BlockRead et des fichiers typées hérités de TurboPascal, je trouve ça un peu plus complexe et pas forcement génial. Je préfère largement un TFileStream à la place d'un 'File of Record' même si c'est pas spécialement fait pour ça.

Un détail: tu n'es pas obligé d'appeler Memo.Clear avant de faire un LoadFromFile(), ça se fait tout seul ^^

Si tu ne te plantes pas ......
tu ne pousseras jamais
Messages postés
3827
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
16 décembre 2021
46
Encore un fois oui tu as raison le LoadFromFile réinitialise la liste avant de charger le fichier mais c'est une habitude

en ce qui concerne les BlockRead & Cie  c'est en fait pas si complexe qu'il n'y parait et ca peut toujours être utile ...
<hr>
@+
Cirec

Salut,


 


Comme je suis dans les blocks en ce moment, on y va comme ca on aura tout fait. Code non testé (et oui pas Delphi sous les yeux).


 


Procedure TForm1.LireFichierClick (Sender : TObject);
Var
F : TextFile;
Lig : String;
Begin
{$I-}
Memo.text:='';
AssignFile(F,'MonFichier.txt');
Reset(F);
While not EOF(F) do
Begin
ReadLn(F,Lig);
Memo.Lines.Add(Lig);
end;
CloseFile(F);
{$I+}
end;

A++

Autre façon

Procedure TForm1.LireFichierClick (Sender : TObject);
Var
F : File;
buf :  array[1..1024] of char;
Lu : longInt;
Begin
{$I-}
Memo.text:='';
AssignFile(F,'MonFichier.txt');
Reset(F);
While not EOF(F) do
Begin
BlockRead(F,buf,1024,Lu);
Memo.lines.text:=Memo.lines.text+buf;
end;
CloseFile(F);
{$I+}
end;
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Quant on peut faire simple pourquoi faire compliquéMerci

To be or not to be
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Quel est le rapport avec Delphi si tu utilises un programme externe
J'avoue que sur ce soup là, je me sens un peu dépassé.
Tu poses un question sur un forum de programmation et en réalité, tu recharchais un programme tout fait.
Etrange ... enfin bref.

Si tu ne te plantes pas ......
tu ne pousseras jamais
Messages postés
1173
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
10 septembre 2011
3
Je viens me mêler à la conversasion. Pour te rassurer florenth, je ne comprend pas moi ne plus le problème de Bierataise mais ce que je sais c'est qu'il voulait ouvrir un fichier codé en ASCII donc vous avgez précisé comment ouvrir un fichier mais pas comment le décoder. Donc il n'y avait que la moitié de la réponse à la question de Bierataise. Mais bon, ne nous acharnons pas là dessus, il a trouvé ce qu'il voulait et les codes pour l'ouverture des fichiers pourront servir à plus d'un...

<hr size="2" width="100%">La paresse est la mère du génie...
Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012

êtes-vous aller voir le lien ?? HexEdit ce n'est pas un Soft mais bel & bien un Composant Delphi pour ouvrir des fichiers Binaires façon "UltraEdit" ya même des exemples pour en faire un soft "editeur", un TMemo est incapable d'afficher des caractères tels que #0..#10 ect...
Messages postés
1173
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
10 septembre 2011
3
Pour ce qui me conserne je viens d'aller voir le lien mais pour mon précédant commmentaire je me suis batit sur ce qui a été dit avant...

<hr size="2" width="100%">La paresse est la mère du génie...
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Je réponds car en fait j'ai essayé grâce à LabVIEW qui est un langage graphique pour ceux qui ne le saurai pas( il existe que des forums commerciaux à propos de ce langage un peu spécial.)
Mon problème est que je n'arrive à déchiffrer que l'entête qui est du ASCII et ceci représente à peine 5% (le reste est illisible)de mon fichier contenant peut être mes datas perdues.
Si qq connait une autre forme de codage que décimal,hexa,octo,ascii pour coder un fichier bien sur qq chose de civil.
Merci

To be or not to be
Messages postés
55
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
4 mai 2006

Alors là je m'adresse aux plus anciens parmis nous, il s'agit de progammation pure et dure:

Quel est la syntaxe en Basic pour faire appelle à un fichier si qq s'en souvient merci d'avance

To be or not to be