Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Ouverture d'un fichier [ Système / Fichier & Disque ] (grandyaka54)

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é 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 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 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 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

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.