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

WinDev Discussion :

modification ligne en cours fichier externe


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut modification ligne en cours fichier externe
    Bonjour,
    Je suis depuis plusieurs jours devant un problème que je n'arrive pas à résoudre.
    Dans un fichier externe (fichier texte), je souhaite modifier une ligne en changeant une valeur.
    Mon code fonctionne sauf que cela modifie la ligne suivante et non la ligne en cours de traitement.
    Merci de m'aider.
    Voici le code :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    nIdFic est un entier
    sMaChaîne est une chaîne
     
    // compteur du nombre de lignes modifiées
    cpt est un entier = 0
     
    // Ouverture du fichier
    nIdFic = fOuvre("C:\Documents and Settings\Utilisateur\Bureau\Imagerie1.txt", foLectureEcriture)
     
    SI nIdFic=-1 ALORS
    	Erreur("L'ouverture du fichier a échoué", ErreurInfo())
    SINON
     
    	// Première ligne
    	sMaChaîne = fLitLigne(nIdFic)
    	TANTQUE sMaChaîne<>EOT
     
    		// Traitement de la ligne lue
    		Trace(sMaChaîne)
     
    		// Ligne suivante
    		sMaChaîne = fLitLigne(nIdFic)
     
    	//BOUCLE	
    		Nbre est un entier = Hasard(1,95)
    		SAI_Num_instr1 = Nbre
     
     
    		Image est une chaîne  = ExtraitChaîne(sMaChaîne,1,";")
    		Instr est une chaîne  = ExtraitChaîne(sMaChaîne,2,";")
    		Flague est une chaîne = ExtraitChaîne(sMaChaîne,3,";")
    		i est un entier
     
    		nblig est un entier = 1
     
    		SI Image = Nbre ALORS
    				Flague = 1
    					Info("Chaîne : " + sMaChaîne)
    					//Trace(sMaChaîne)
     
    					EcritChaine est une chaîne = Image + ";" + Instr + ";" + Flague
    					Info("EcritChaine : " + EcritChaine)
     
    					ChaineRemplacée est une chaîne = Remplace(sMaChaîne,sMaChaîne,EcritChaine)
     
    					PositionEnCours est un entier = fPositionne(nIdFic, 0, fpCourant)
    					Info("PositionEnCours : " + PositionEnCours)
     
    					ResEcriture est un entier = fEcritLigne(nIdFic,ChaineRemplacée)	
    					SI ResEcriture = -1 ALORS 
    						Erreur(ErreurInfo(errMessage))
    					SINON
    						Info("Ligne modifiée")
    					FIN
    		FIN	
    	FIN
     
    	// Fermeture du fichier
    	ResFermeFichier est un entier = fFerme(nIdFic)
    	SI ResFermeFichier = -1 ALORS
    		Erreur(ErreurInfo(errMessage))
    	FIN
    FIN

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    A mon avis le problème vient du fpositionne(). En effet, après la lecture d'une ligne tu te retrouves APRES la ligne, donc tu vas écraser la ligne suivante. Il faut en fait reculer de la longueur de la ligne, ou mémoriser la position AVANT de lire la ligne.
    Je note aussi que tu ne traites jamais la première ligne, mais c'est peut-être voulu.

    Tatayo.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Brut de décoffrage comme ça, je te dirai que tu lis une ligne en avance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	sMaChaîne est une chaîne = fLitLigne(nIdFic) //1ère ligne
    	TANTQUE sMaChaîne<>EOT
    		// Traitement de la ligne lue
    		Trace(sMaChaîne)
    		// Ligne suivante
    		sMaChaîne = fLitLigne(nIdFic)//2ème ligne
    Peut-être faudrait-il que tu déplaces ton fLitLigne à la fin de ta boucle TANTQUE

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Salut à toi,

    En effet, il faut placer le fLitLigne(..) de ta boucle à la fin.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Salut à toi,

    En effet, il faut placer le fLitLigne(..) de ta boucle à la fin.
    Même en mettant le fLitLigne à la fin, cela revient au même.
    Cela ne viendrait-il pas de la fonction fEcritLigne ?
    Pouvez-vous si possible, mettre le code corrigé pour que j'y vois plus clair ?

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Toutes mes confuses, j'ai lu le problème de travers.

    A part le fait, déjà vu par Tatayo, que tu ne traites pas la première ligne, ce n'est pas la position du fLitLigne(..) dans la boucle qui va changer les choses.

    Après test, il y a 2 phénomènes qui sont présents :
    1) Il faut te positionner en utilisant Taille(..)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // *-1 pour reculer et le -2 pour le RC implicite
    PositionEnCours est un entier = fPositionne(nIdFic, ((Taille(sMaChaîne) * -1) - 2), fpCourant)
    2) Le second problème que je n'ai pas réussi à contourner, est le fait que tu modifies en ajoutant plus de caractère, ce qui a pour effet de supprimer les caractères suivants.

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    cas où le chiffre est remplacé par uniquement par 0 :
    1;     1;
    2; --> 0;
    3;     3;
     
    cas de ton code si Instr = ""
    1;     1;
    2; --> 2;;1
    3;     (ligne suivante à blanc)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    J'ai fait comme ça et ça marche.
    Seulement voilà, j'ai mis mon code sur un bouton (donc une ligne est modifiée à chaque fois que je clique sur le bouton) et j'aimerais le faire jusqu'à ce que toutes les lignes soient modifiées.
    Je ne sais pas trop où mettre ma BOUCLE.
    Merci d'avance pour ton aide.

  8. #8
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Je ne comprends pas trop, ta boucle parcours déjà tout le fichier texte et les lignes sont modifiées si Hasard(..) sort la même valeur que la ligne en cours.

    A part ce dernier point, qui n'est pas prévisible, je ne vois pas ce que tu veux faire.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Oui Lo2.
    C'est le but.
    Je veux modifier une ligne en fonction du nombre de la fonction Hasard.
    Mais le but est de modifier toutes les lignes de mon fichier texte.

    Faut-il mettre un compteur pour compter le nombre de lignes déjà traitées, et donc modifiées, dans le fichier ?
    As-tu une autre piste ?

  10. #10
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    A quoi te sert la fonction Hasard(..) parce que c'est celà qui t'empêche la modification de toutes les lignes ?

    Est-ce que tu ne voudrais pas, par hasard (sans jeu de mots ), générer aléatoirement 95 lignes dans un fichier texte ?

    Si c'est ça, il faut garder en mémoire, la liste des chiffres déjà sorti par la fonction Hasard(..).
    Mais plus tu auras sorti de chiffres, plus le risque, de trouver un nouveau chiffre, sera grand.

    Pour info, utilises InitHasard() pour éviter d'avoir la même série de chiffres à chaque tirage.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Voici à quoi ressemble ma fenêtre :
    http://img38.imageshack.us/img38/115...mposition1.png

    Je reçois donc un code instrument dans le champ de saisie en bas à droite :
    http://img28.imageshack.us/img28/431...mposition2.png

    Par rapport à la semaine dernière, la modification d'une ligne dans une table fonctionne en faisant le code suivant :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    POUR TOUT Contenu_boite SUR ID_Instrument
    	POUR i = 1 A TableOccurrence(TABLE_Boite1)
     
    		HLitRecherchePremier(Contenu_boite,ID_Instrument,SAI_Instr_recu..ValeurAffichée)
    		SI HTrouve() ALORS
     
    			SI TABLE_Boite1.Instr[i] = SAI_Instr_recu..ValeurAffichée ALORS
     
    				TableSelectPlus(TABLE_Boite1,i)
    				TableModifieLigne(TABLE_Boite1,-1,TABLE_Boite1.Instr, 1, "c:\nocheck.PNG")
    			FIN
    		FIN
    	FIN
    FIN
     
    POUR TOUT Contenu_boite SUR ID_Instrument
    	POUR i = 1 A TableOccurrence(TABLE_Boite2)
    		HLitRecherchePremier(Contenu_boite,ID_Instrument,SAI_Instr_recu..ValeurAffichée)
    		SI HTrouve() ALORS
    			SI TABLE_Boite2.Instr[i] = SAI_Instr_recu ALORS
    				TableSelectPlus(TABLE_Boite2,i)
    				TableModifieLigne(TABLE_Boite2,-1,TABLE_Boite2.Instr, 1, "c:\nocheck.PNG")
    			FIN
    		FIN
    	FIN
    FIN
     
    POUR TOUT Contenu_boite SUR ID_Instrument
    	POUR i = 1 A TableOccurrence(TABLE_Boite3)
    		HLitRecherchePremier(Contenu_boite,ID_Instrument,SAI_Instr_recu..ValeurAffichée)
    		SI HTrouve() ALORS
    			SI TABLE_Boite3.Instr[i] = SAI_Instr_recu ALORS
    				TableSelectPlus(TABLE_Boite3,i)
    				TableModifieLigne(TABLE_Boite3,-1,TABLE_Boite3.Instr, 1, "c:\nocheck.PNG")
    			FIN
    		FIN
    	FIN
    FIN
     
    POUR TOUT Contenu_boite SUR ID_Instrument
    	POUR i = 1 A TableOccurrence(TABLE_Boite4)
    		HLitRecherchePremier(Contenu_boite,ID_Instrument,SAI_Instr_recu..ValeurAffichée)
    		SI HTrouve() ALORS
    			SI TABLE_Boite4.Instr[i] = SAI_Instr_recu ALORS
    				TableSelectPlus(TABLE_Boite4,i)
    				TableModifieLigne(TABLE_Boite4,-1,TABLE_Boite4.Instr, 1, "c:\nocheck.PNG")
    			FIN
    		FIN
    	FIN
    FIN
     
    POUR TOUT Contenu_boite SUR ID_Instrument
    	POUR i = 1 A TableOccurrence(TABLE_Boite5)
    		HLitRecherchePremier(Contenu_boite,ID_Instrument,SAI_Instr_recu..ValeurAffichée)
    		SI HTrouve() ALORS
    			SI TABLE_Boite5.Instr[i] = SAI_Instr_recu ALORS
    				TableSelectPlus(TABLE_Boite5,i)
    				TableModifieLigne(TABLE_Boite5,-1,TABLE_Boite5.Instr, 1, "c:\nocheck.PNG")
    			FIN
    		FIN
    	FIN
    FIN
    http://img208.imageshack.us/img208/5...mposition3.png

    Seulement voilà : il faut cliquer dans le champ de saisie (SAI_Instr_recu) pour que le changement de ligne se fasse. Cela est donc manuel.
    J'aimerais donc le faire de manière automatique.
    Merci de m'aider.

  12. #12
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Salut,

    A mon avis, il faut utiliser dans un traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableSelectPlus(maTable, monIndice)
    ExecuteTraitement(maTable, trtSelect)

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Dans le code de chaque table ou de mon champ de saisie ?

  14. #14
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Là, c'est plus toi qui devrait savoir.

    Tu voudrais au final, lister tous les instruments de toutes tes boîtes, et les traiter un à un ?

    Si oui, tu crées une procédure qui liste le contenu de chacune des tables contenant les instruments et qui traite chacun des instruments (code contenu dans le champ de saisie si je comprends bien).

    Cette procédure sera à lancer chaque fois que tu en auras besoin.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Je veux en fait lancer ma procédure de modification de ligne dans un tableau, donc de manière automatique, à chaque fois que je reçois un numéro d'instrument dans le champ de saisie.

    Là je suis obligé de sélectionner le numéro d'instrument dans le champ puis de le désélectionner et sortir du champ pour modifier la ligne.

    Cela est don embêtant.
    merci pour ton aide.

  16. #16
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Je ne comprends pas bien ce que tu as actuellement.

    Ce que j'ai compris :
    Tu sélectionnes un instrument dans une table.
    L'instrument sélectionné s'affiche dans ton champ de saisie.
    Tu appuies sur le bouton "test" pour modifier selon des critères la colonne de check.

    C'est ça ?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Non ce n'est pas tout à fait ça.
    Je reçois un numéro d'instrument dans le champ saisie via TCP/IP.
    Ensuite, lorsque je clique sur le bouton Test (ou que je sélectionne puis sors du champ de saisie), la ligne de l'un des 5 tableaux correspondant au numéro d'instrument est modifiée (colonne Check).

    Comme je l'ai dit, tout cela se fait manuellement, même lorsque je mets le code dans une procédure.
    Donc cela fait plusieurs jours que je cherche à savoir comment faire pour que tout ces traitements se fassent automatiquement.

  18. #18
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    La réception de l'instrument est automatique, je suppose que c'est ton appli qui va chercher l'info, alors pourquoi ne pas mettre le traitement du bouton test au niveau du traitement qui te retourne l'info via TCPIP ?

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    J'y arrive mieux mais j'ai encore un problème.
    J'ai créé la procédure suivante :
    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
    PROCEDURE ProcédureGestion(Canal)
    sResultat est une chaîne
     
    BOUCLE
    	sResultat = SocketLit(Canal,Vrai)
    	FEN_Recomposition3.SAI_Instr_recu = sResultat
     
    	Info("Procédure Modification_Ligne")
    	Modification_Ligne()
     
    	SI PAS SocketExiste(Canal) ALORS SORTIR
    FIN
     
    ThreadArrête("",500)
    Multitâche(-30)
    Voici le code de la procédure Modification_Ligne :
    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
    PROCEDURE Modification_Ligne()
    i est un entier
     
    POUR TOUT Contenu_boite SUR ID_Instrument
    	POUR i = 1 A TableOccurrence(FEN_Recomposition3.TABLE_Boite1)
    		HLitRecherchePremier(Contenu_boite,ID_Instrument,FEN_Recomposition3.SAI_Instr_recu)
    		//HLitRecherchePremier(Contenu_boite,ID_Instrument,FEN_Recomposition3.SAI_Instr_recu,hLimiteParcours)
    		SI HTrouve() ALORS
    			SI FEN_Recomposition3.TABLE_Boite1.Instr[i] = FEN_Recomposition3.SAI_Instr_recu ALORS
    				TableSelectPlus(FEN_Recomposition3.TABLE_Boite1,i)
    				TableModifieLigne(FEN_Recomposition3.TABLE_Boite1,-1,FEN_Recomposition3.TABLE_Boite1.Instr, 1, "c:\nocheck.PNG")
    			FIN
    		FIN
    	FIN
    FIN
    La modification se fait automatiquement mais mon programme se bloque dès que la ligne du tableau du premier enregistrement trouvé (numéro d'instrument) est modifiée (colonne Check).

    Merci d'avance pour ton aide Lo2.

  20. #20
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Salut,

    Je pense que le blocage provient de la boucle du fichier "Contenu_boite" dans laquelle tu fais un filtre avec le HLitRecherche sur le même fichier.

    Voici un code que je mettrais à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    iIndice est entier
    POUR i = 1 A 5
    	iIndice = TableCherche({"FEN_Recomposition3.TABLE_Boite" + i, indChamp}, FEN_Recomposition3.SAI_Instr_recu)
    	SI iIndice > 0 ALORS
    		TableSelectPlus({"FEN_Recomposition3.TABLE_Boite" + i, indChamp},iIndice)
    		TableModifieLigne({"FEN_Recomposition3.TABLE_Boite" + i, indChamp},-1,{"FEN_Recomposition3.TABLE_Boite" + i + ".Instr", indChamp}, 1, "c:\nocheck.PNG")	
    		SORTIR
    	FIN
    FIN

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/01/2008, 16h15
  2. Réponses: 2
    Dernier message: 21/09/2007, 15h37
  3. Modification d'une ligne d'un fichier
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 20/03/2007, 15h29
  4. Réponses: 3
    Dernier message: 07/08/2006, 11h25
  5. Modification de lignes dans un fichier...
    Par Life Hunter dans le forum Langage
    Réponses: 11
    Dernier message: 25/08/2005, 01h37

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