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

Delphi Discussion :

assigner/recuperer le contenu d'un fichier texte


Sujet :

Delphi

  1. #1
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut assigner/recuperer le contenu d'un fichier texte
    salut,


    je viens de passer un sacré bout de temps sur la comprehension ainsi que des tests sur la facon de lire un fichier mais je coince pour recuperer le contenu du fichier
    c'est enervant .... je precise que je n'ai aucune erreur lors de la compilation.


    j'utilise un compo TOpenDialog pour recuperer le nom d'un fichier, ensuite je compte inserer/afficher le contenu du fichier dans un compo TRichEdit

    txSource -> le compo TRichEdit

    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.Button1Click(Sender: TObject);
    var caPtFichier:Cardinal;
    var caTailleFichier:Cardinal;
    var buffer:String;// c'est bon ca ?
    begin
    	if OpenDialog1.Execute()then
    		begin
    		caPtFichier := fileOpen(OpenDialog1.FileName, fmOpenRead);
    		caTailleFichier := fileRead(caPtFichier,buffer,50000);
    		showMessage(IntToStr(caTailleFichier));
    		showMessage(buffer);
    		txSource.Text := 'xxx '+buffer+' xxx';
    		FileClose(caPtFichier);
    		end
    	else
    		begin
    		txSource.Text := '';// que faire d'autre ?
    		end;
    end;
    rien a faire, la variable buffer reste deseperement vide, evidemment l'aide de delphi est tellement bien faite qu'il n'y a pas la moindre infos la dessus
    j'ai aussi essayé les routines E/S mais la c'est encore pire



    quelqu'un a une idée sur la facon de recuperer le contenue du fichier avec fileRead et la variable 'buffer' ?

    merci
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  2. #2
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Cherches dans l'aide Delphi "LoadFromFile" et tu trouveras
    Bidouilleuse Delphi

  3. #3
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    si c'etait si simple, je n'aurais peut etre pas posé la question ...

    en plus j'ai deja cherché cette methode mais elle est lié a des composants ou classe qui n'ont rien a voir avec l'utilisation que je recherche !
    c'est dans un TRichEdit que j'essaye d'inserer le contenue de la variable buffer.


    je repose la question :
    quelqu'un a une idée sur la facon de recuperer le contenue d'un fichier avec fileRead et de l'utilisation qu'il faut faire de la variable 'buffer' (2eme argument de fileRead) ?

    merci


    --------------------------
    c'est bon, je suis repassé par textFile et sa fonctionne

    pour ceux que ca interesse :
    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
    procedure TForm1.Button1Click(Sender: TObject);
    var F:textfile;
    var stTxt:String;
    begin
    	if OpenDialog1.Execute()then
    		begin
    			txSource.Text := '';
    			// ici je vais devoir ouvrir le fichier, lire le contenue et l'assigner !
    			assignfile(F,OpenDialog1.FileName);
    			reset(F);
    			while not eof(F) do
    			begin
    				readln(F,stTxt);
    				txSource.Lines.Add(stTxt);
    			end;
    			closefile(F);
    			showmessage(inttostr(txSource.Lines.Count));
    		end
    	else
    		begin
    			txSource.Text := '';
    			// que faire d'autre ?
    		end
    end;
    par contre l'insertion d'un fichier moyen (1Mo) prend deja un temps enorme ...
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  4. #4
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    En pensant Objet, il y a plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with OpenDialog1 do
        begin
          if Execute then
            txSource.Lines.LoadFromFile(FileName);
        end;
    end;
    Penses au tag Résolu si c'est le cas
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    voilà un exemple issu de l'aide delphi, et qui marche :
    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      iFileHandle: Integer;
      iFileLength: Integer;
      iBytesRead: Integer;
      Buffer: PChar;
      i: Integer;
    begin
      if OpenDialog1.Execute then
      begin
        try
          iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
          iFileLength := FileSeek(iFileHandle,0,2);
          FileSeek(iFileHandle,0,0);
          Buffer := PChar(AllocMem(iFileLength + 1));
          iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength);
     
          FileClose(iFileHandle);
          txSource.Text := Buffer;//ligne ajoutée
          {
          for i := 0 to iBytesRead-1 do
          begin
            StringGrid1.RowCount := StringGrid1.RowCount + 1;
            StringGrid1.Cells[1,i+1] := Buffer[i];
            StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
          end;
          }
        finally
          FreeMem(Buffer);
        end;
      end;

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Lorenzo77
    si c'etait si simple, je n'aurais peut etre pas posé la question ...
    Excuses moi de ne pas avoir été plus explicite...
    Citation Envoyé par Lorenzo77
    en plus j'ai deja cherché cette methode mais elle est lié a des composants ou classe qui n'ont rien a voir avec l'utilisation que je recherche !
    c'est dans un TRichEdit que j'essaye d'inserer le contenue de la variable buffer.
    TRichEdit.Lines à bien une méthode LoadFromFile...
    --> voir le message de neilbgr qui donne la solution et qui ne me parait pas si compliqué
    Bidouilleuse Delphi

  7. #7
    Membre confirmé
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Points : 647
    Points
    647
    Par défaut
    Waskol a écrit :
    Excuses moi de ne pas avoir été plus explicite...
    Je pense que tu n'as pas à t"excuser. Ton indication était suffisemment clair pour mettre Lorenzo77 sur la voie.


    Lorenzo77 a écrit :
    rien a faire, la variable buffer reste deseperement vide, evidemment l'aide de delphi est tellement bien faite qu'il n'y a pas la moindre infos la dessus .
    L'aide de DELPHI est la meilleure documentation que l'on puisse trouver. Il y a tout dedans ou presque à ce niveau de besoin.

    si c'etait si simple, je n'aurais peut etre pas posé la question ...
    Tu n'as surement pas bien cherché. Il y a aussi les tutoriaux et d'innombrables exemples disponibles sur le WEB.

    Compulses encore l'aide de DELPHI sur le comosant TRichEdit et tu verra que c'est très simple.

    A+
    Rien n'est moins sur que l'incertain : Pierre DAC

Discussions similaires

  1. [VBA E] recupere le contenu d'un fichier texte .
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/11/2006, 17h24
  2. Recuperer le contenu d'un champs texte
    Par bouboussjunior dans le forum ASP
    Réponses: 4
    Dernier message: 29/09/2004, 14h16
  3. Réponses: 12
    Dernier message: 03/06/2004, 20h21
  4. Réponses: 3
    Dernier message: 22/02/2004, 20h09
  5. Réponses: 1
    Dernier message: 12/02/2003, 09h36

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