Ouvrir un fichier écrit en ASCII

Résolu
bierataise Messages postés 55 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 4 mai 2006 - 26 avril 2006 à 12:04
bierataise Messages postés 55 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 4 mai 2006 - 2 mai 2006 à 10:58
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

cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
27 avril 2006 à 15:43
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
3
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
27 avril 2006 à 15:44
biensûr il est freeware avec source !!!
3
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
26 avril 2006 à 12:20
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
0
bierataise Messages postés 55 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 4 mai 2006
26 avril 2006 à 12:33
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
26 avril 2006 à 12:47
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
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
26 avril 2006 à 12:53
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
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
26 avril 2006 à 12:56
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
26 avril 2006 à 13:15
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
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
26 avril 2006 à 13:34
"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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
26 avril 2006 à 14:06
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
0
Utilisateur anonyme
26 avril 2006 à 14:30
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++
0
Utilisateur anonyme
26 avril 2006 à 15:03
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;
0
bierataise Messages postés 55 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 4 mai 2006
27 avril 2006 à 16:12
Quant on peut faire simple pourquoi faire compliquéMerci

To be or not to be
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
27 avril 2006 à 21:40
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
0
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
28 avril 2006 à 14:54
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...
0
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
28 avril 2006 à 15:44
ê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...
0
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
28 avril 2006 à 16:01
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...
0
bierataise Messages postés 55 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 4 mai 2006
2 mai 2006 à 09:58
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
0
bierataise Messages postés 55 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 4 mai 2006
2 mai 2006 à 10:58
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
0
Rejoignez-nous