begin process at 2012 02 11 03:12:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Fichier & Disque

 > 

Ouverture d'un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ouverture d'un fichier

vendredi 8 février 2008 à 16:42:14 | Ouverture d'un fichier

grandyaka54

Bonjour,

Actuellement, je suis sur un projet utilisant un fichier.txt dans lequel on a plusieurs contrôle à faire. Si un controle échou, le fichier est rejeter et l'appli s'arrête sinon on poursuit au controle suivant...

Pour ma part, à chaque contrôle, s'ouvre, lit et je referme mon fichier a chaque appelle de fonction. Cette manip me plait pas beaucoup car je retrouve plusieurs fois dans mes fonctions AssignFile, Reset, Readln et Close.

Je n'arrive pas a trouver une solution pour créer une fonction ou procedure en passant en parametre un textfile et qui me renvoi aussi ce textfile. Cette fonction me permettrai d'éviter de reecrire a chaque fois dans chaque fonction de controle assignfile, reset etc...N'arrivant pas a trouver d'exemple ou de solutions sur le net, je m'en remets a vous.

Merci d'avance si vous pouvez m'indiquer une solution possible.

Cordialement.
----------------------------------
Ex :
AssignFile (F,NomFich);
Reset (F);

//1er controle
Result := function1 (F);

//2eme controle
Result := function2 (F);

//Etc..

CloseFile (F);
-----------------------------------

C'est le passage de parametre qui me bloque

Function (Fich : TextFile) : Boolean;

begin
end;

vendredi 8 février 2008 à 17:33:51 | Re : Ouverture d'un fichier

grandyaka54

C'est le passage de parametre qui me bloque

Function (Fich : TextFile) : Boolean;
begin

Repeat

   Readln(Fich,Ligne);

Until EOF(Fich);

Resutl := Resultat;

end;



vendredi 8 février 2008 à 17:49:11 | Re : Ouverture d'un fichier

fbalien

Membre Club
Réponse acceptée !
Bonjour

vous devez avoir un message du style Type de fichier non autorisé ici (E2002)
en regardant l'aide de delphi on à ceci
Les types File ne sont pas autorisés comme paramètres valeur et comme type de base d'un type file lui-même. Ils ne sont également pas autorisés comme types de renvoi de fonction, et vous ne pouvez pas les affecter


et une solution à votre problème qui consiste à modifier votre fonction comme ceci


Function (VAR Fich : TextFile) : Boolean;
begin
  Repeat  
      Readln(Fich,Ligne);
  Until EOF(Fich);
  Resutl := Resultat;
end;

CDT
vendredi 8 février 2008 à 18:24:48 | Re : Ouverture d'un fichier

f0xi

Membre Club Administrateur CodeS-SourceS


si tes fichiers texte ne depasse pas une certaine taille :



const
  ErrorCode_NoError    = $00;
  ErrorCode_Condition1 = $01;
  ErrorCode_Condition2 = $02;
  ErrorCode_Condition3 = $04;
  ErrorCode_Condition4 = $08;

function Control(Strings: TStrings; var BreakLine, ErrorCode: integer): boolean;
var n : integer;
    c1, c2, c3, c4 : boolean;
begin
  result := true;
  breakline := -1;
  ErrorCode := ErrorCode_NoError;
  for N := 0 to Strings.Count-1 do
  begin
    c1 := (String[N] = condition1);
    c2 := (String[N] = condition2);
    c3 := (String[N] = condition3);
    c4 := (String[N] = condition4);

    result := c1 and c2 and c3 and c4;

    if not Result then
    begin
      BreakLine := N;
      if not c1 then
        ErrorCode := ErrorCode or ErrorCode_Condition1;
      if not c2 then
        ErrorCode := ErrorCode or ErrorCode_Condition2;
      if not c3 then
        ErrorCode := ErrorCode or ErrorCode_Condition3;
      if not c4 then
        ErrorCode := ErrorCode or ErrorCode_Condition4;
      Exit;
    end;
  end;
end;


var TSL : TStringList;
    BL,EC : integer;
    FileName, MsgErr: string;
begin
  FileName := 'c:\mon programme\fichier.txt';

  TSL := TStringList.Create;
  try
    TSL.LoadFromFile(FileName);

    if not control(TSL, BL, EC) then
    begin
      MsgErr := 'Erreur ( ';
      if (ErrorCode_condition1 and EC) > 0 then
        MsgErr := MsgErr + 'C1 ';
      if (ErrorCode_condition1 and EC) > 0 then
        MsgErr := MsgErr + 'C2 ';
      if (ErrorCode_condition1 and EC) > 0 then
        MsgErr := MsgErr + 'C3 ';
      if (ErrorCode_condition1 and EC) > 0 then
        MsgErr := MsgErr + 'C4 ';
      MsgErr := MsgErr + ') a la ligne ['+IntToStr(BL)+']'+#13#10;
      MsgErr := MsgErr + 'Le fichier '+ExtractFileName(FileName)+' est rejeté.';
      MessageDlg(MsgErr, mtError, [mbOk], 0);
    end    
    else
      MessageDlg('Fichier ok', mtInformation, [mbOk], 0);
  finally
    TSL.Free;
  end;
end;
  



deefsign.gif
lundi 11 février 2008 à 13:35:40 | Re : Ouverture d'un fichier

grandyaka54

En modifiant la fonction comme indiqué ça marche tres bien mais le risque et que je ne connais pas la taille du fichier d'origine.

Merci comme meme pour l'aide.



Cette discussion est classée dans : fichier, fonction, controle, reset, assignfile


Répondre à ce message

Sujets en rapport avec ce message

Demander à un executable de faire un executable [ par Francky23012301 ] Bon à force de voir mes messages, il y en a qui vont peter les plombs. D'autre qui vont me poser une question qui va me faire sourir. Sous Delphi (im fichier et reset.. [ par intello2001 ] quand jouvre un fichier avec assignfile et que je fait reset il me fait une erreur je pense que sa vient de la longueur du nom du fichier ou des espac Fonction pour obtenire le chemin de l'exécutable? [ par Go20 ] Salut, J'ai un EInOutError : 'File not found' avec :assignfile(fichier,'repertoires.ini');reset(fichier);Le fichier repertoires.ini est dans le meme r Rechercher une chaine binaire dans un fichier binaire. [ par SiZiOUS ] Salut à tous,Voila, j'ai un problème. Je voudrai rechercher une chaîne dans un fichier binaire (pas du texte).Seulement, j'ai pas trouvé de fonction q AssignFile repertoire de stockage predefini de fichier texte source [ par Narutobaka ] bonjour J'aimerai pouvoir ouvrir avec AssignFile un fichier texte se trouvant dans un répertoire prédéfini et ne se trouvant pas dans le meme répertoi Nom de fichier [ par buguetj ] Bonjour a tous, et bonne fêtes,je suis en train de créer une application écrite en delphi pour fonctionner sous windows.Je m'explique, j'ai actuelleme Récupérer le type d'un fichier [ par Bestiol ] Salut tout le monde !!Euh... J'ai vraiment l'impression de poser une question idiote , mais coment on fait pour connaître le type d'un fichier, en fon Existe-t-il une fonction deleteln; probleme avec fichier textfile [ par arthur07 ] DR@G Bonjour, Ce que j'aimerais savoir c'est s'il existe une fonction en Delphi pour ecrire à un endroit X dans un fichier texte o probleme ecriture fichier [ par templeofboom ] Bonjour , je suis newbie en delphi et je dois gérer l'écriture dans un fichier  or j'arrive effectivement à ecrire dans ce fichier mais ce qui est ecr Quelle est la fonction appropriée pour récupérer le chemin du fichier qui lance mon appli? [ par olemtiri ] Salut à tous !! Je veux vraiment votre aide à propos de mon problème !! J'explique : je veux récupérer le chemin complet du fichier qui lance mon appl


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales